docker中镜像的commit怎么用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章将为大家详细讲解有关docker中镜像的commit怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。docker commit:表示提交容器副本使之成为
千家信息网最后更新 2025年02月01日docker中镜像的commit怎么用
这篇文章将为大家详细讲解有关docker中镜像的commit怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
docker commit:表示提交容器副本使之成为一个新的镜像。假设我们在docker中运行了一个Tomcat容器,我们在tomcat容器中做了一些我们自定义的修改,然后我们这个修改的tomcat容器进行commit,这样我们就形成了一个新的自定义镜像。
命令格式:docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]
案例演示
1、从hub上下载tomcat镜像到本地并成功运行
说明:-p是指定端口,-P是随机端口
[root@t-docker chenzx]# docker images tomcatREPOSITORY TAG IMAGE ID CREATED SIZEtomcat latest 690cb3b9c7d1 7 days ago 463MB[root@t-docker chenzx]# docker run -it -p 8888:8080 tomcatUsing CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /docker-java-home/jre30-Aug-2018 08:37:01.728 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]30-Aug-2018 08:37:01.736 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]30-Aug-2018 08:37:01.739 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 555 ms[root@t-docker chenzx]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES5c83a1f3aea4 tomcat "catalina.sh run" 8 minutes ago Up 8 minutes 0.0.0.0:8888->8080/tcp quirky_zhukovsky
[root@t-docker chenzx]# docker run -it -P tomcat[root@t-docker chenzx]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES54a817e3ce05 tomcat "catalina.sh run" 21 seconds ago Up 19 seconds 0.0.0.0:32768->8080/tcp confident_leavitt
2、故意删除上一步镜像生成的tomcat容器文档
[root@t-docker chenzx]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES54a817e3ce05 tomcat "catalina.sh run" 17 minutes ago Up 17 minutes 0.0.0.0:32768->8080/tcp confident_leavitt[root@t-docker chenzx]# docker exec -it 54a817e3ce05 /bin/bashroot@54a817e3ce05:/usr/local/tomcat# cd webapps/root@54a817e3ce05:/usr/local/tomcat/webapps# ls -ltotal 4drwxr-x--- 3 root root 306 Aug 23 00:47 ROOTdrwxr-x--- 14 root root 4096 Aug 23 00:47 docsdrwxr-x--- 6 root root 83 Aug 23 00:47 examplesdrwxr-x--- 5 root root 87 Aug 23 00:47 host-managerdrwxr-x--- 5 root root 103 Aug 23 00:47 managerroot@54a817e3ce05:/usr/local/tomcat/webapps# rm -rf docs/root@54a817e3ce05:/usr/local/tomcat/webapps# ls -ltotal 0drwxr-x--- 3 root root 306 Aug 23 00:47 ROOTdrwxr-x--- 6 root root 83 Aug 23 00:47 examplesdrwxr-x--- 5 root root 87 Aug 23 00:47 host-managerdrwxr-x--- 5 root root 103 Aug 23 00:47 manager
3、通过上一步,当前的Tomcat运行实例是一个没有文档内容doc目录的容器,以它为模板commit一个没有doc的tomcat新镜像chenzx/tomcat02,chenzx就是自己取的命名空间
[root@t-docker chenzx]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES54a817e3ce05 tomcat "catalina.sh run" 26 minutes ago Up 26 minutes 0.0.0.0:32768->8080/tcp confident_leavitt[root@t-docker chenzx]# docker commit -a='xiaoxin' -m='del tomcat docs' 54a817e3ce05 chenzx/tomcat02:1.2sha256:24c3d89d4d043e4fb97f0cf4f3b94bcf96b5600a062fc8de4e39a7763d20badf[root@t-docker chenzx]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEchenzx/tomcat02 1.2 24c3d89d4d04 7 seconds ago 463MBtomcat latest 690cb3b9c7d1 7 days ago 463MB
4、把正在运行的容器全部删除
[root@t-docker chenzx]# docker rm -f $(docker ps -q)54a817e3ce05[root@t-docker chenzx]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5、以我们自定义的镜像生成一个新的容器
[root@t-docker chenzx]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEchenzx/tomcat02 1.2 24c3d89d4d04 6 minutes ago 463MBtomcat latest 690cb3b9c7d1 7 days ago 463MBcentos latest 5182e96772bf 3 weeks ago 200MB[root@t-docker chenzx]# [root@t-docker chenzx]# docker run -it -P chenzx/tomcat02:1.2 [root@t-docker chenzx]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESc6c68b224e84 chenzx/tomcat02:1.2 "catalina.sh run" 24 seconds ago Up 24 seconds 0.0.0.0:32770->8080/tcp awesome_sammet
可以看到,我们用自定义的jtomcat1.2镜像,生成的容器里面没有doc目录
6、启动我们的新镜像并和原来的镜像对比
启动chenzx/tomcat1.2,它没有docs目录
启动原来tomcat。它有docs目录
7、以守护式方式启动tomcat容器(-d参数)
[root@t-docker chenzx]# docker run -d -p 6666:8080 tomcat23b4ec6f24b854f682631c5a9b6bcfc0c685dbec46d1867faea4b534f5791452[root@t-docker chenzx]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES23b4ec6f24b8 tomcat "catalina.sh run" 5 seconds ago Up 4 seconds 0.0.0.0:6666->8080/tcp flamboyant_almeida
关于"docker中镜像的commit怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
镜像
容器
目录
运行
篇文章
生成
内容
文档
更多
端口
上一
不错
实用
成功
上下
作者
信息
副本
参数
命令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全防诈骗的手段
数据库储存哪里
西软件开发培训中心
计算机网络安全的对策的论文
软件开发简历该怎么写
陕西智慧医养软件开发电话
咸鱼之王服务器有用么
pb如何创建数据库
远端服务器是不是拉远站
棋牌软件开发违法吗
网络安全知识坊
抚顺网络技术
怎么在数据库列表中添加约束
考克兰数据库导出错误
西安手机应用软件开发要多少钱
义乌网络安全集团
我校网络安全四个坚持
网络安全关注范围有哪些
信息系统和软件开发
闵行区综合软件开发承诺守信
滨州纺织软件开发定制
波阳软件开发商是谁
安徽省网络安全工作实施细则
宁波工控软件开发
网络安全技术国内主要供应商
单位网络安全分析报告
软件开发折旧
手机系统服务器慢是什么问题
网络安全行业公开课
闵行区综合软件开发承诺守信