docker commit 提交容器副本使之成为一个自定义的镜像

-a 作者
-m 提交信息
加上 当前修改并运行的容器id
加上 命名空间
加上 镜像的名字和版本号
docker commit -a=”zhy” -m=”tomcat without docs” 79f229042aae 12345/mytomcat:1.2

1.从Hub上下载tomcat镜像到本地并成功运行

  1. P是随机分配一个 主机暴露给外界访问的端口
  2. docker run -it -P tomcat //tomcat后面默认的8080不用加,暴露给外部的端口是随机的
  3. root@test 12345]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 41ee92892122 tomcat "catalina.sh run" 38 seconds ago Up 32 seconds 0.0.0.0:49153->8080/tcp mystifying_knuth
  6. ===================================================================
  7. docker run -it -p 7777:8080 tomcat
  8. p是指定一个主机暴露给外界访问的端口 8888
  9. root@test 12345]# docker ps
  10. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  11. 79f229042aae tomcat "catalina.sh run" 51 minutes ago Up 51 minutes 0.0.0.0:8888->8080/tcp cranky_wu

如果同时启动了两个暴露给外部端口不一样的tomcat,也可以同时访问,因为用的是两个不一样的容器
image.png

image.png

2.故意删除上一步镜像生产tomcat容器的文档

image.png

3.当前tomcat运行实例是一个没有文档内容的容器,

以它为模板commit一个没有doc的tomcat新镜像12345/mytomcat:1.2

镜像提交命令

-a 作者
-m 提交信息
加上 当前修改并运行的容器id
加上 命名空间
加上 镜像的名字和版本号
docker commit -a=”zhy” -m=”tomcat without docs” 79f229042aae 12345/mytomcat:1.2

  1. [root@test 12345]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 41ee92892122 tomcat "catalina.sh run" 38 seconds ago Up 32 seconds 0.0.0.0:49153->8080/tcp mystifying_knuth
  4. 79f229042aae tomcat "catalina.sh run" 51 minutes ago Up 51 minutes 0.0.0.0:8888->8080/tcp cranky_wu
  5. //以当前没有doc文件夹的容器创建了一个新的镜像
  6. [root@test 12345]# docker commit -a="zhy" -m="tomcat without docs" 79f229042aae 12345/mytomcat:1.2
  7. sha256:9c0ca2221a792b67761611d300fe3b80805d14383fd15d72e24f6651fe223423
  8. [root@test 12345]# docker images
  9. REPOSITORY TAG IMAGE ID CREATED SIZE
  10. 12345/mytomcat 1.2 9c0ca2221a79 21 seconds ago 650MB
  11. tomcat latest feba8d001e3f 4 weeks ago 649MB
  12. centos latest 300e315adb2f 5 weeks ago 209MB

4.启动没有doc的新镜像并和原来的对比

  1. [root@test 12345]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 8c1185676d94 12345/mytomcat:1.2 "catalina.sh run" 23 seconds ago Up 21 seconds 0.0.0.0:7777->8080/tcp compassionate_torvalds
  4. [root@test 12345]# docker exec -it 8c1185676d94 /bin/bash
  5. root@8c1185676d94:/usr/local/tomcat# ls
  6. BUILDING.txt NOTICE RUNNING.txt lib temp work
  7. CONTRIBUTING.md README.md bin logs webapps
  8. LICENSE RELEASE-NOTES conf native-jni-lib webapps2
  9. root@8c1185676d94:/usr/local/tomcat# cd webapps
  10. root@8c1185676d94:/usr/local/tomcat/webapps# ls
  11. ROOT examples host-manager manager //没有doc文件夹
  12. root@8c1185676d94:/usr/local/tomcat/webapps#

容器运行成功

image.png

新的镜像里没有doc文件夹,报404

image.png