docker commit :表示提交一个容器的副本使之成为新的镜像。假如我们在docker上运行了一个tomcat的容器,对Tomcat容器进行了修改操作,然后我们将修改操作后的tomcat进行commit,就得到了一个新的镜像。

命令格式:docker commit -m=“提交的描述信息” -a="作者" 容器id 要创建的目标镜像名:[标签名]

案例演示

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

说明: -p是指定端口号。-P是随机端口号

[root@t-docker chenzx]# docker images tomcat
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 690cb3b9c7d1 7 days ago 463MB
[root@t-docker chenzx]# docker run -it -p 8888:8080 tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /docker-java-home/jre
30-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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5c83a1f3aea4 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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54a817e3ce05 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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54a817e3ce05 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/bash
root@54a817e3ce05:/usr/local/tomcat# cd webapps/
root@54a817e3ce05:/usr/local/tomcat/webapps# ls -l
total 4
drwxr-x--- 3 root root 306 Aug 23 00:47 ROOT
drwxr-x--- 14 root root 4096 Aug 23 00:47 docs
drwxr-x--- 6 root root 83 Aug 23 00:47 examples
drwxr-x--- 5 root root 87 Aug 23 00:47 host-manager
drwxr-x--- 5 root root 103 Aug 23 00:47 manager
root@54a817e3ce05:/usr/local/tomcat/webapps# rm -rf docs/
root@54a817e3ce05:/usr/local/tomcat/webapps# ls -l
total 0
drwxr-x--- 3 root root 306 Aug 23 00:47 ROOT
drwxr-x--- 6 root root 83 Aug 23 00:47 examples
drwxr-x--- 5 root root 87 Aug 23 00:47 host-manager
drwxr-x--- 5 root root 103 Aug 23 00:47 manager

3、通过上一步,当前的tomcat是没有doc目录的容器,以他为模板commit一个没有doc的tomcat新镜像zhenzx/tomcat02,zhenxz就是自己取名的命名空间

[root@t-docker chenzx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54a817e3ce05 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.2
sha256:24c3d89d4d043e4fb97f0cf4f3b94bcf96b5600a062fc8de4e39a7763d20badf
[root@t-docker chenzx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chenzx/tomcat02 1.2 24c3d89d4d04 7 seconds ago 463MB
tomcat latest 690cb3b9c7d1 7 days ago 463MB

把正在运行的容器全部删除

[root@t-docker chenzx]# docker rm -f $(docker ps -q)
54a817e3ce05
[root@t-docker chenzx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

以我们自定义的镜像生成一个新的容器

[root@t-docker chenzx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
chenzx/tomcat02 1.2 24c3d89d4d04 6 minutes ago 463MB
tomcat latest 690cb3b9c7d1 7 days ago 463MB
centos 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 ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c6c68b224e84 chenzx/tomcat02:1.2 "catalina.sh run" 24 seconds ago Up 24 seconds 0.0.0.0:32770->8080/tcp awesome_sammet

连接后可以看到,我们用自定义的tomcat1.2镜像没有doc目录

6、启动我们新的镜像并和原来的镜像对比

启动chenzx/tomcat1.2,它没有doc目录

启动原来的tomcat,它有doc目录

[root@t-docker chenzx]# docker run -d -p 6666:8080 tomcat
23b4ec6f24b854f682631c5a9b6bcfc0c685dbec46d1867faea4b534f5791452
[root@t-docker chenzx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23b4ec6f24b8 tomcat "catalina.sh run" 5 seconds ago Up 4 seconds 0.0.0.0:6666->8080/tcp flamboyant_almeida

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28916011/viewspace-2213229/,如需转载,请注明出处,否则将追究法律责任

docker 11 docker的commit操作的更多相关文章

  1. 创建Python数据分析的Docker镜像+Docker自定义镜像commit,Dockerfile方式解析+pull,push,rmi操作

    实例解析Docker如何通过commit,Dockerfile两种方式自定义Dcoker镜像,对自定义镜像的pull,push,rmi等常用操作,通过实例创建一个Python数据分析开发环境的Dock ...

  2. Docker容器学习梳理 - 日常操作总结

    使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands: attach Attach ...

  3. docker数据卷之持久化操作

    docker Docker三大核心组件:(运行起来的镜像就可以称作容器) Docker 镜像--Dcoker images:类比与类 Docker 仓库--Docker registeries: Do ...

  4. Ubuntu下安装Docker,及Docker的一些常用命令操作

    1.什么是 Docker         Docker 是一个开源项目,Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案.         Docker 的基础是 Linux 容器(LXC ...

  5. Docker入门到实践——简单操作

    1.对比传统虚拟机总结 特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生 弱于 系统支持量 单机支持上千个容器 一般几十个 2.基本概念 Docker包括三个基 ...

  6. 【快学Docker】Docker镜像相关操作

    前言 镜像是Docker的三大核心概念之一(另外两个分别是:容器和仓库). Docker运行容器前需要本地存在镜像,如果本地不存在镜像,Docker则会尝试从远端仓库拉去镜像.镜像是Docker一大核 ...

  7. Docker学习(四): 操作容器

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  8. docker的安装及基础操作与镜像构建

    仓库配置及安装启动 [root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 [root@loca ...

  9. Docker系列之常用命令操作手册

    目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4.Docker容器操作 Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Doc ...

随机推荐

  1. js截图及绕过服务器图片保存至本地(html2canvas)

    今天要分享的是用html2canvas根据自己的需求生成截图,并且修复html2canvas截图模糊,以及绕过服务器图片保存至本地. 只需要短短的几行代码,就能根据所需的dom截图,是不是很方便,但是 ...

  2. 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式

    一.业务场景 公司的样本检测报告以React页面的形式生成,已调整为A4大小的样式并已实现分页,业务上需要将这个网页生成PDF文件,并上传到服务器,后续会将这个文件发送给客户(这里不考虑). 二.原来 ...

  3. MyBatis 返回主键

    1,用于插入语句 2,传入对象 3,使用下面的属性即可 userGengratedKeys="true" keyProperty="orderId" keyCo ...

  4. Linux swappiness参数设置与内存交换

    swappiness参数设置与内存交换 by:授客 QQ:1033553122 简介 swappiness,Linux内核参数,控制换出运行时内存的相对权重.swappiness参数值可设置范围在0到 ...

  5. ArrayMap 和HashMap的区别

    在以往android开发中,我们常常用key-value存储数据时,随手就会打出HashMap的代码,当数据量较小时,这种方法还不错还可以,当数据量比较多的时候,如果是PC机上,也还阔以.但是如果使用 ...

  6. 智能POS相关FAQ

    1.安卓智能POS(一体机)的口碑点餐已知问题: 1.由于口碑的组合套餐接口不稳定,强烈建议商户不要使用组合套餐商品.已开通口碑后付的门店,如果有组合套餐商品,暂时不要使用组合套餐商品:有组合套餐需求 ...

  7. Spark操作HBase报:org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException异常解决方案

    一.异常信息 19/03/21 15:01:52 WARN scheduler.TaskSetManager: Lost task 4.0 in stage 21.0 (TID 14640, hnte ...

  8. SQL Server Replication的分发服务器的快照文件夹位置查找

    SQL Server分发服务器配置中,需要配置快照文件夹(Snapshot Folder),用于存储发布的数据和架构文件的工作目录,那么如何查找当前SQL Server数据库服务器的分发服务器的快照文 ...

  9. mysql练习----Using Null

    teacher id dept name phone mobile 101 1 Shrivell 2753 07986 555 1234 102 1 Throd 2754 07122 555 1920 ...

  10. [20190219]那个更快(11g).txt

    [20190219]那个更快(11g).txt --//前几天测试11g Query Result Cache RC Latches时,链接http://blog.itpub.net/267265/v ...