docker commit命令的具体使用
docker commit 命令 : 用于将一个镜像进行提交成一个新的副本
命令格式:
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]
做个实例:
查看本地镜像
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 605c77e624dd 2 months ago 141MB tomcat 9.0 b8e65a4d736d 2 months ago 680MB tomcat latest fb5657adc892 2 months ago 680MB mysql latest 3218b38490ce 2 months ago 516MB hello-world latest feb5d9fea6a5 5 months ago 13.3kB centos latest 5d0da3dc9764 5 months ago 231MB
我们之前的Tomcat服务器的部署是使用的最新的latest
我们就使用Tomcat 9.0 来做这个
这是它的前台运行结果
做一个端口映射:
[root@localhost ~]# docker run -it -p 8080:8080 tomcat Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/openjdk-11 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 07-Mar-2022 10:59:56.387 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.0.14 07-Mar-2022 10:59:56.390 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 2 2021 22:01:36 UTC 07-Mar-2022 10:59:56.390 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.14.0 07-Mar-2022 10:59:56.391 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-862.el7.x86_64 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-11 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.13+8
在前台运行的同时,我们来查看一下正在运行的容器
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5e73948b0078 tomcat "catalina.sh run" 5 minutes ago Up 5 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp happy_feistel 155ead9f80cc tomcat "catalina.sh run" 5 hours ago Up 5 hours 0.0.0.0:3355->8080/tcp, :::3355->8080/tcp tomcat01 2257878e8b61 nginx "/docker-entrypoint.…" 6 hours ago Up 5 hours 0.0.0.0:443->80/tcp, :::443->80/tcp nginx01 6d6fa6a4c6d7 5d0da3dc9764 "/bin/bash" 6 hours ago Up 6 hours nice_panini [root@localhost ~]#
这个时候,使用浏览器来访问一下Tomcat

这结果是正常的,这是因为镜像原本就不完整
在这样的情况下,如果终止掉前台的进程

这个时候,浏览器的访问就会报错:

如果想要在终止前台进程的同时,想让浏览器的访问不报错
就要这样做:
[root@localhost ~]# docker run -d -p 8080:8080 --name tomcat04 tomcat:9.0 c9a2f98234c79d94e0ccc67b5a529eace1ec1d2211b1b7088a16a45c62134ae8 [root@localhost ~]#
浏览器再次访问

恢复正常
我们接下来解决一下镜像不完整而导致的问题
进容器
[root@localhost ~]# docker exec -it b7d37ccaadf0 /bin/bash root@b7d37ccaadf0:/usr/local/tomcat# b7d37ccaadf0
这样复制一下文件到指定文件中
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#
浏览器上测试:

这就好了
接下来,我们要进行一些操作
使得我们修改后的镜像提交成一个新的副本
下次我们直接使用它
[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 155ead9f80cc tomcat "catalina.sh run" 6 hours ago Up 6 hours 0.0.0.0:3355->8080/tcp, :::3355->8080/tcp tomcat01 2257878e8b61 nginx "/docker-entrypoint.…" 6 hours ago Up 6 hours 0.0.0.0:443->80/tcp, :::443->80/tcp nginx01 6d6fa6a4c6d7 5d0da3dc9764 "/bin/bash" 7 hours ago Up 7 hours nice_panini
将我们原先经过处理的镜像打成一个新的包,变成一个新的整体
[root@localhost ~]# docker commit -a="shuaige" -m "add a web app" c9a2f98234c7 tomcat04:1.0 sha256:12b32b1a124d5c1a3572fd0d02542c254192e415aa49045390f15a9a811f0153 [root@localhost ~]#
查看镜像:(看Tomcat04 的那个镜像,比原先的9.0 Tomcat 镜像要大)
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat04 1.0 12b32b1a124d 2 minutes ago 685MB nginx latest 605c77e624dd 2 months ago 141MB tomcat 9.0 b8e65a4d736d 2 months ago 680MB tomcat latest fb5657adc892 2 months ago 680MB mysql latest 3218b38490ce 2 months ago 516MB hello-world latest feb5d9fea6a5 5 months ago 13.3kB centos latest 5d0da3dc9764 5 months ago 231MB
现在他就是一个新的镜像了,下次可以直接使用
栏 目:其它服务器
下一篇:VMware Workstation 16 pro 安装mac os的图文教程
本文标题:docker commit命令的具体使用
本文地址:https://zz.feitang.co/server/29946.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





