8、镜像commit

docker commit 的作用是提交容器副本使之成为一个新的镜像
用法如下:
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

案例演示:
1、从docker hub上下载tomcat镜像到本地并成功运行

[root@dockeron68 ~]# docker pull tomcat
[root@dockeron68 ~]# docker run -it -p 8888:8080 tomcat #小写p参数为port,8888为docker宿主机端口,8080为docker容器内部tomcat服务启动后的端口
docker容器运行成功后,我们可以通过访问docker宿主机的8888端口,来访问容器内的Tomcat服务,因为我们使用-p 8888:8080做了映射
8、镜像commit
当然也可以使用-P(大写的p)随机分配端口
[root@dockeron68 ~]# docker run -it -P tomcat
[root@dockeron68 ~]# docker ps
8、镜像commit
docker宿主机随机分配的端口是32768,这个时候我们就需要使用32768来访问了
8、镜像commit

2、故意删除上一步镜像生成Tomcat容器的文档
[root@dockeron68 ~]# docker exec -it c2ecc248dacb /bin/bash
root@c2ecc248dacb:/usr/local/tomcat# cd webapps/
root@c2ecc248dacb:/usr/local/tomcat/webapps# rm -rf docs/

3、也即当前的Tomcat运行实例是一个没有文档内容的容器,以它为模板commit一个没有doc的tomcat镜像atguigu/tomcat02。atguigu/tomcat02是一种命名空间规范,这样写而已
[root@dockeron68 ~]# docker commit -a="commit test" -m "tomcat without docs" c2ecc248dacb atguigu/tomcat:1.2
返回:
b4d3b9ce02dc2aec6cff4561da65b6f66ae2ce571290cb8b88df029c058320a1
commit完成,使用docker images 命令可以看到我们自己提交的image
8、镜像commit

4、启动新的镜像和原来的对比
[root@dockeron68 ~]# docker run -it -p 9999:8080 atguigu/tomcat:1.2
访问docker宿主机9999端口
然后点击【Documentation】
8、镜像commit
访问404错误
8、镜像commit
这是因为我们在使用运行容器生成镜像前,我们在容器中删除了docs文件夹,所以使用新生成的image,再次运行的实例,中没有docs文档,所以这里会访问失败

猜你喜欢

转载自blog.51cto.com/2638441/2317188