docker commit命令的使用(用于容器内部修改后,生成新的镜像)
#
docker commit作用
docker commit 命令 : 用于将一个镜像进行提交成一个新的副本 命令格式: docker commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]
示例:
查看本地镜像
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat 9.0 b8e65a4d736d 2 months ago 680MB tomcat latest fb5657adc892 2 months ago 680MB 我们使用Tomcat 9.0 来做测试
做一个端口映射
[root@localhost ~]# docker run -d -p 8080:8080 --name tomcat04 tomcat:9.0 c9a2f98234c79d94e0ccc67b5a529eace1ec1d2211b1b7088a16a45c62134ae8 [root@localhost ~]#
浏览器访问
解决镜像不完整而导致访问找不到文件的问题
# 进入容器 [root@localhost ~]# docker exec -it c9a2f98234c7 /bin/bash root@c9a2f98234c7:/usr/local/tomcat# # 复制一下文件到webapps文件夹中 root@c9a2f98234c7:/usr/local/tomcat# cp -r webapps.dist/* webapps root@c9a2f98234c7:/usr/local/tomcat# cd webapps root@c9a2f98234c7:/usr/local/tomcat/webapps# ls ROOT docs examples host-manager manager root@c9a2f98234c7:/usr/local/tomcat/webapps#
复制完文件后浏览器上测试:
通过docker commit操作使得我们修改后的镜像提交成一个新的副本方便下次直接使用
# 查看当前docker进程 [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c9a2f98234c7 tomcat:9.0 "catalina.sh run" 17 minutes ago Up 17 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp tomcat04 # 将上述经过处理的镜像打成一个新的包,变成一个新的整体 [root@localhost ~]# docker commit -a="yh" -m "add a web app" c9a2f98234c7 tomcat04:1.0 sha256:12b32b1a124d5c1a3572fd0d02542c254192e415aa49045390f15a9a811f0153 [root@localhost ~]#
再次查看镜像:
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat04 1.0 12b32b1a124d 2 minutes ago 685MB tomcat 9.0 b8e65a4d736d 2 months ago 680MB tomcat latest fb5657adc892 2 months ago 680MB
# 现在tomcat04:1.0就是一个新的镜像了,下次可以直接使用,访问tomcat不会出现404问题了。
#