docker commit 提交容器成为一个新的副本,有点像套娃

# 命令和git原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

实战测试

#step-1 启动一个默认的tomcat
[root@localhost ~]# docker run -d -p 3355:8080 --name tomcat02 tomcat
57644fa210a03bfea17b961b804bb528a94935700f0074b084b0603f48521889
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57644fa210a0 tomcat "catalina.sh run" 15 seconds ago Up 14 seconds 0.0.0.0:3355->8080/tcp, :::3355->8080/tcp tomcat02
3b6ca0890fa0 portainer/portainer "/portainer" 33 minutes ago Up 28 minutes 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp dreamy_robinson

#step-2 发现这个默认的tomcat没有webapps应用,镜像的原因,官方的镜像默认 webapps下面是没有文件的
[root@localhost ~]# docker exec -it 57644fa210a0 /bin/bash
root@57644fa210a0:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@57644fa210a0:/usr/local/tomcat# ls webapps/
root@57644fa210a0:/usr/local/tomcat# ls webapps.dist/
ROOT docs examples host-manager manager

#step-3 自己拷贝基本文件进去
root@57644fa210a0:/usr/local/tomcat# cp -r webapps.dist/* webapps/
root@57644fa210a0:/usr/local/tomcat# ls webapps/
ROOT docs examples host-manager manager
root@57644fa210a0:/usr/local/tomcat# exit
exit

#step-4 commit
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57644fa210a0 tomcat "catalina.sh run" 2 minutes ago Up 2 minutes 0.0.0.0:3355->8080/tcp, :::3355->8080/tcp tomcat02
3b6ca0890fa0 portainer/portainer "/portainer" 35 minutes ago Up 30 minutes 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp dreamy_robinson
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 9.0 266d1269bb29 7 days ago 668MB
tomcat latest 266d1269bb29 7 days ago 668MB
nginx latest dd34e67e3371 8 days ago 133MB
elasticsearch 7.14.0 e347b2b2d6c1 3 weeks ago 1.04GB
portainer/portainer latest 580c0e4e98b0 5 months ago 79.1MB
centos latest 300e315adb2f 8 months ago 209MB
[root@localhost ~]# docker commit -m="add webapps file" -a="gelaotou" 57644fa210a0 tomcat_gelaotou:1.0
sha256:fabb99d62dfe97e8146d75b7a18840f812dff6c1c24916016012306735a9139a

#step-5 校验
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat_gelaotou 1.0 fabb99d62dfe 6 seconds ago 673MB
tomcat 9.0 266d1269bb29 7 days ago 668MB
tomcat latest 266d1269bb29 7 days ago 668MB
nginx latest dd34e67e3371 8 days ago 133MB
elasticsearch 7.14.0 e347b2b2d6c1 3 weeks ago 1.04GB
portainer/portainer latest 580c0e4e98b0 5 months ago 79.1MB
centos latest 300e315adb2f 8 months ago 209MB

Docker系列(15)- Commit镜像的更多相关文章

  1. Docker 系列之 常用镜像

    Ubuntu 实战 操作 # 拉取 18.04 版本的 Ubuntu 镜像 docker pull ubuntu:latest # 以交互方式运行并进入 ubuntu 容器环境 docker run ...

  2. docker 系列 - 企业级私有镜像仓库Harbor部署(转载)

     本文转载自 搜云库 的文章 https://www.jianshu.com/p/7d76850de03f  , 感谢作者 3.png 上一篇文章搭建了一个具有基础功能,权限认证.TLS 的私有仓库, ...

  3. Docker系列06—基于容器制作镜像并上传到Docker Registry

    本文收录在容器技术学习系列文章总目录 1.制作镜像 1.1 镜像的生成途径 基于容器制作 dockerfile,docker build 本篇主要详细讲解基于容器制作镜像:基于dockerfile 制 ...

  4. Docker系列-(2) 镜像制作与发布

    上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图 ...

  5. Docker探索系列2之镜像打包与DockerFile

    preface docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建 ...

  6. Docker系列之Docker镜像(读书笔记)

    一.基本概念 Docker包括三个基本概念镜像.容器.仓库. Docker镜像:就是一个只读的模板.例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了Apache或其他应用程序.用 ...

  7. docker系列(二):镜像

    1 引言 将docker与汽车生产线类比,如果说docker引擎是汽车生产车间,那么容器就是最终的产品——汽车,而本节要介绍的镜像就如同汽车设计图纸,其重要性不言而喻——只有有了设计图(镜像),才能生 ...

  8. docker系列四之docker镜像与容器的常用命令

    docker镜像与容器的常用命令 一.概述   docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...

  9. 【Docker】7. 镜像-加载原理、分层原理、commit镜像

    一.什么是镜像 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件. 它包含运行某个软件所需的所有内容,包括代码.运行时环境.库.环境变量和配置文件. 所有的应用,直接 ...

  10. Docker系列教程01-使用Docker镜像

    docker系列导读 一文带你读懂什么是docker Docker安装部署 10张图带你深入理解Docker容器和镜像 前言 学习Docker,我们需要掌握它的三大核心概念:镜像.容器和仓库. 今天先 ...

随机推荐

  1. 零基础学Java之Java学习笔记(三):变量和数据类型

    为什么需要变量? 变量是一个程序的基本组成单位. 变量的概念: 变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房 间,而通过变量名可以访问到变量(值 ...

  2. Pikachu-CSRF模块

    一.概述 Cross-site request forgery 简称为"CSRF",在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击, ...

  3. miniFTP项目实战三

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  4. 做iOS自动化测试必须知道的一些知识

    WDA facebook wda 2015年Facebook 开源了一款 iOS 移动测试框架WebDriverAgent,WebDriverAgent 在 iOS 端实现了一个 WebDriver ...

  5. NOIP 模拟 $23\; \rm 题$

    题解 \(by\;zj\varphi\) 考虑 \(\rm DP\) 设 \(dp_{k}(S)\) 表示前 \(k\) 个人来后 \(S\) 集合中的苹果都存在的概率是否大于 \(0\) 考虑倒着转 ...

  6. idea中的springboot的maven项目报错Failed to clean project: Failed to delete D:\new_shunyi\shunyi\target\shunyi\WEB-INF\classes\static\

    正准备打包上传到测试环境,本想先clean下,没想到报了个这个错,意思大概是无法删除target下的某个文件,没有权限(一脸懵逼): 后来百度发现可能是因为我之前启动了tomcat,未关闭,然后关闭了 ...

  7. SQL中的聚合函数运用

    参考网址: https://zhuanlan.zhihu.com/p/245115561 聚合函数是什么 聚合函数是对一组值执行计算,并返回单个值的函数.常与 SELECT 语句的 GROUP BY ...

  8. css - rem和vw

    css - rem和vw 物理像素 物理像素在不同的设备中1px里可以容纳的像素颗粒是不相同的,所以1px这个单位其实也是有N个像素颗粒填充的.同一尺寸屏幕的每个像素点所能容纳的像素颗粒越多显示效果越 ...

  9. mzy git学习,禁用Fast forward的普通合并(六)

    git merge --no-ff -m "msg" x-branch:禁用Fast forward的普通合并 通常,合并分支时,如果可能,Git会用Fast forward模式, ...

  10. clickhouse物化视图

    今天来简单介绍一下clickhouse的物化视图 物化视图支持表引擎,数据保存形式由它的表引擎决定,创建物化视图的完整语法如下: create materialized view mv_log eng ...