运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
可以在浏览器中访问 https://hub.docker.com/search?q=&type=image 来搜索和查看官方镜像仓库。
使用 docker images 列出本地镜像:
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如果不指定一个镜像的版本标签,docker 将默认使用 最新版本即”仓库源名称:latest” 镜像。
执行docker search来搜索镜像:
执行docker pull来获取镜像:
更新已有镜像
启动一个已下载的CentOS 7.5的容器,并进入容器内linux shell交互界面
[root@Docker-Test containers]# docker run -t -i centos:7.5.1804 /bin/bash
执行 yum update更新此容器环境的CentOS:
(补充:上图中显示当前是在容器ID 4168e485ed17里的Centos执行shell command,那是因为启动此容器的时候,我加上了-t -i参数
但是如果临时有其他事情中断导致退出了此界面,再登录宿主机Linux时,需重新进入此容器的shell时,执行docker exec -i -t Container ID or name /bin/bash即可)
更新完毕,执行docker commit提交生成一个新的自定义镜像:
docker commit -m="20190910_updated" -a "xj" 4168e485ed17 xj/centos7:v20190910
-m 添加描述,-a 添加作者,4168e485ed17 被操作的容器ID,xj/centos 自定义资源库名称,v20190910 自定义TAG,标识一下版本号
创建新的镜像
创建一个Dockerfile文件,定义创建镜像的指令:
[root@Docker-Test tmp]# vi Dockerfile
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
docker build -t xj/centos:test_v1 .
-t 定义目标镜像名 ,.为当前路径
docker images命令显示已生成此镜像。
新增镜像标签 docker tag
使用 docker tag 命令,为同个镜像增添一个新的标签。
删除镜像 docker rmi