码迷,mamicode.com
首页 > 其他好文 > 详细

8、镜像commit

时间:2018-11-15 12:07:30      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:term   51cto   blog   ash   分配   type   服务   bdd   comm   

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做了映射
技术分享图片
当然也可以使用-P(大写的p)随机分配端口
[root@dockeron68 ~]# docker run -it -P tomcat
[root@dockeron68 ~]# docker ps
技术分享图片
docker宿主机随机分配的端口是32768,这个时候我们就需要使用32768来访问了
技术分享图片

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
技术分享图片

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

8、镜像commit

标签:term   51cto   blog   ash   分配   type   服务   bdd   comm   

原文地址:http://blog.51cto.com/2638441/2317188

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!