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. Asp.Net中对操作Sql Server 简单处理的SqlDB类

    好久不接触这些闲暇时间回顾一下以前的基础.因为平常使用的时候都是直接调用SqlDB.dll这个类.先看这个类的结构 纸上得来终觉浅,绝知此事要躬行.个人觉得里面的标准操作就是对数据库增删查改 .特别适 ...

  2. 通过css改变svg img的颜色

    需求如下图,hover的时候改变图标颜色,图标为引入的svg img 一般的解决办法有:1.字体图标改变css的color属性:2.js在hover事件中切换图片:3.老一点的方案是hover切换背景 ...

  3. 前端整理——css部分

    (1)盒模型(普通盒模型.怪异盒模型) 1.元素的content(内容).padding(内边距).border(边框).margin(外边距)构成了CSS盒模型 2.IE盒模型和W3C盒模型 1)I ...

  4. 【Wyn Enterprise BI知识库】 认识多维数据建模与分析 ZT

    与业务系统类似,商业智能的基础是数据.但是,因为关注的重点不同,业务系统的数据使用方式和商业智能系统有较大差别.本文主要介绍的就是如何理解商业智能所需的多维数据模型和多维数据分析. 数据立方体 多维数 ...

  5. Space Time Varying Color Palette

    PDF Space Time Varying Color Palettes from Bo Zhou

  6. Chrome Inspect不显示Webview页面的问题总结

    首先,确保手机打开了USB调试.如果还是检测不到WebView页面,主要有以下几种情况. 1.反应慢,稍等一会 2.关闭然后重新打开USB调试开关,刺激一下chrome,我的魅族手机有时需要这样操作一 ...

  7. 智能POS删除文件和数据库操作步骤

    1. 2. 3. 4.winbox:日志:winboxcash:数据库:winboxcyb:其他文件: 5.删除以上三个文件夹

  8. Cas 服务器 下载、编译及部署

    一直想把公司运营的项目的各个子项的认证及授权统一到Cas上,从有想法到现在快一年的时间了.现在才正式着手,有兴趣的朋友一起交流学习一下.具体项目的细节不便透露,整合的大体思路为:1.开发部署Cas服务 ...

  9. python 中文报错

    解决的办法为:在程序的开头写入如下代码,这就是中文注释 #coding=utf-8

  10. CharacterController平滑移动到某点

    通常使用CharacterController控制玩家移动时,我们都会写以下代码: void Update() { var move = (moveTarget - transform.Positio ...