自学笔记
1 docker里的几个概念:
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。就行maven的仓库一样.(国外的中央仓库, 国内的如网易蜂巢/daoCloud),其中daoCloud不需要登录(https://hub.daocloud.io/)
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器 可以被创建、启动、停止、删除、暂停等。
2. 安装docker
(命令可以从https://www.runoob.com/docker/centos-docker-install.html复制)
(1) 下载docker的依赖环境
yum install -y yum-utils device-mapper-persistent-data lvm2
(2)设置docker的镜像源。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3) 安装docker
yum makacache fast
yum -y install docker-ce
(4)启动docker并设置开机自启动
# 启动:
systemctl start docker
# 开机自动启动:
systemctl enable docker
(5)测试docker是否安装成功
docker run hello-world
3.镜像
查看镜像
docker image ls
docker images
# 查看(无用)镜像
docker image ls -f dangling=true
下载镜像
docker pull nginx[:tag]
docker pull nginx:1.20
删除镜像
# 删除无用镜像
docker rmi $(docker images -q -f dangling=true)
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
# 关键字删除镜像,其中doss-api为关键字
docker rmi --force [-f] $(docker images | grep doss-api | awk '{print $3}')
保存镜像
docker image save
docker images
查看镜像历史
docker image history [镜像名称]
docker images
4.容器
查看正在运行的容器
docker ps [-qa] # ps是 process status的缩写
#-a 查看全部, 包括没有运行的容器
#-q 只查看容器的标识, 不查看其他信息
docker ps -a
运行容器
docker run 镜像的IMAGE ID | 镜像名称[:tag]
# 常用参数
# -d 后台运行
# -p 宿主机linux的端口: 容器的端口 为了映射当前linux的端口和容器的端口
# --name 指定容器名称
# --rm 关闭容器后,自动销毁
docker run -d -p 8081:8080 --name tomcat a0fdb
# 解释:运行上命令后就可以在浏览器中访问http://192.168.xx.xx:8081/可以出现tomcat了
# 守护进程(没有前台运行程序时使用)
docker run -dit -p 8081:8080 --name tomcat a0fdb
# 直接启动并执行一段指令
docker run --rm -it -v /root/test/calendar-notepad-vue-dev:/calendar --name node_c1 node /bin/sh -c "cd /calendar && npm install && npm run build"
停止容器
docker stop [id或name]
docker stop myTest
# 关闭所有的容器(解释:关闭所有列出的容器)
docker stop $(docker ps -a -q)
启动容器
docker start [id或name]
docker start myTest
删除容器
docker rm [id或name]
docker rm myTest
进入容器
注意默认容器内linux包是最小安装。只拥有最基本的命令
exit,不会导致容器的停止
docker exec -it 容器 ID (Names) bash
docker exec -it tomcat1 bash # 进入容器名称叫 tomcat1,一般:/bin/bash 或者 /bin/sh
echo ' qfnj-weixin'>>index.jsp # 对容器内的 index.jsp 进行字符串追加
# 进入容器并运行shell命令
docker exec -it tomcat1 bash -c "cd app"
注意: -i -t 参数 docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。 只用 -i 参数时,由于没有分配伪终端,界
面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。 当 -i -t 参数一起使用时,则可以看到我
们熟悉的 Linux 命令提示符。
交换文件
docker cp [OPTIONS] CONTAINER:PATH LOCALPATH # 容器中 复制到 宿主机
docker cp [OPTIONS] LOCALPATH|- CONTAINER:PATH # 宿主机 复制到 容器中
# 宿主机复制一个图片到容器中:将png图片复制到了容器指定目录下
docker cp guoweixin.png tomcat2:/usr/local/tomcat/webapps/ROOT
# 将容器内的index.jsp 复制出来,修改再复制回去
docker cp tomcat2:/usr/local/tomcat/webapps/ROOT/index.jsp /root
查看日志
docker logs 容器名称/ID
docker logs -f -t --since="2018-12-1" --tail=10 qfjy_exam
# 说明:
# --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
# -f : 查看实时日志
# -t : 查看日志产生的日期
# -tail=10 : 查看最后的10条日志
# qfjy_exam : 容器名称
5. 数据卷
#1 创建数据卷
docker volume create 数据卷名称
# 创建数据卷之后,默认会存放到目录: /var/lib/docker/volume/数据卷名称/_data目录下
#2 查看数据卷
docker volume inspect 数据卷名称
#3 查看全部数据卷信息
docker volume ls
#4 删除数据卷
docker volume rm 数据卷名称
#5 应用数据卷
#5.1 当你映射数据卷时,如果数据卷不存在,Docker会帮你自动创建
docker run -v 数据卷名称:容器内路径 镜像ID
#5.2 直接指定一个路径作为数据卷的存储位置
docker run -v 路径:容器内部的路径 镜像ID
6. 打包镜像
docker commit -a "Sun" -m "a new image" [容器名称或id] [打包的镜像名称]:[标签]
常用OPTIONS说明:
- -a :提交的镜像作者
- -c :使用Dockerfile指令来创建镜像
- -m :提交时的说明文字
- -p :在commit时,将容器暂停
作者:sun 创建时间:2021-12-05 10:50
最后编辑:sun 更新时间:2023-02-22 13:40
最后编辑:sun 更新时间:2023-02-22 13:40