标签:term 51cto blog ash 分配 type 服务 bdd comm
docker commit 的作用是提交容器副本使之成为一个新的镜像案例演示:
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文档,所以这里会访问失败
标签:term 51cto blog ash 分配 type 服务 bdd comm
原文地址:http://blog.51cto.com/2638441/2317188