Docker容器与镜像的关系

容器提交 – docker commit

docker commit -h

作用:

  • 根据容器生成一个新的镜像

命令格式:

  • docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

命令参数(OPTIONS):

  • -a, --author string 作者
  • -c, --change list 为创建的镜像加入Dockerfile命令
  • -m, --message string 提交信息,类似git commit -m
  • -p, --pause 提交时暂停容器 (default true)

命令演示  (在d9e 的容器中安装 net-tools 的包)

docker run -dti centos bash

docker exec d9e56 yum install -y net-tools

docker exec d9e56 ifconfig

  

把 d9e 的容器重新生成一个新的镜像

docker commit -m 'install net-tools' d9e56 centos-net:v1.0

docker images

查看 镜像 历史记录

docker history centos-net:v1.0

容器导出 – docker export

docker export -h

作用:

  • 将容器当前的文件系统导出成一个tar文件

命令格式:

  • docker export [OPTIONS] CONTAINER

命令参数(OPTIONS):

  • -o, --output string 指定写入的文件,默认是STDOUT

命令演示

docker export -o net-tools-image.tar d9e
ls

容器打包的导入 – docker import

docker import -h

作用:

  • 从一个tar文件中导入内容创建一个镜像

命令格式:

  • docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

命令参数(OPTIONS):

  • -c, --change list 为创建的镜像加入Dockerfile命令
  • -m, --message string 导入时,添加提交信息

命令演示

docker import -m '(import) install net-tools' net-tools-image.tar centos2:v1.0

docker history centos2:v1.0

可以看到 import 和 commit 都会生成一个镜像,区别在于import 生成的是一个全新的镜像不保留历史的信息,而 commit 会保留历史的信息,这点可以通过 docker history 去查看

深入理解Docker容器与镜像  

镜像的layer

这个可以通过 docker inspect 去查看,每对镜像进行一次修改,都会在Layers 中增加一条记录

 镜像的视角

 

容器的Layer

容器的视角 

容器与镜像的底层关系

容器的运行

Docker 核心技术之容器与镜像的更多相关文章

  1. docker 批量删除容器和镜像

    docker 批量删除容器和镜像 1,删除单个镜像或者容器 docker  rmi  镜像ID/镜像名字:TAG docker  rm  容器ID/容器名字 1.停止所有的container,这样才能 ...

  2. docker入门(二)容器与镜像的理解

    10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...

  3. docker入门(二)容器与镜像的关系

    [编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(co ...

  4. Docker 核心技术之容器

    什么是容器 容器(Container) 容器是一种轻量级.可移植.并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行 Docker将镜像文件运行起来后,产生的对象就是容器.容器 ...

  5. 【docker专栏3】docker基础概念-容器、镜像以及引擎组成部分

    一.docker镜像与容器 docker镜像是一个可执行的静态独立软件包,包含打包程序代码和软件运行环境等文件.如:代码.运行时库.环境变量和配置文件等都包含在其中.容器是镜像的运行时状态(镜像中的软 ...

  6. docker批量删除容器、镜像

    1.删除所有容器 docker rm `docker ps -a -q` docker rm $(docker ps -aq) 2.删除所有镜像 docker rmi `docker images - ...

  7. docker批量删除容器、镜像(转载)

    1.删除所有容器 docker rm `docker ps -a -q` 2.删除所有镜像 docker rmi `docker images -q` 3.按条件删除镜像 没有打标签 docker r ...

  8. Docker 核心技术

    docker是什么?为什么会出现? 容器虚拟化技术:轻量级的虚拟机(但不是虚拟机) 开发:提交代码 ——> 运维:部署 在这中间,因为环境和配置,出现问题 ——> 把代码/配置/系统/数据 ...

  9. docker(一) -- docker安装、容器加速、下载、备份

    一.docker的 容器是从镜像中创建出来的虚拟实例 容器用来运行实例,是读写层 镜像用来安装程序,是只读层 1. docker的安装和基本操作 安装命令 yum -y update yum inst ...

随机推荐

  1. .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...

  2. 带你精读你不知道的Javasript(上)(一)

    斌果在这几天看了下你不知道的js这本书,这本书讲的东西还是挺不错的,其中有很多平时我压根没接触到的概念和方法.借此也可以丰富一下我对js的了解. 第一部分 第一章 作用域是什么? 1.程序中一点源代码 ...

  3. 【Python3爬虫】为什么你的博客没人看呢?

    我相信对于很多爱好和习惯写博客的人来说,如果自己的博客有很多人阅读和评论的话,自己会非常开心,但是你发现自己用心写的博客却没什么人看,多多少少会觉得有些伤心吧?我们今天就来看一下为什么你的博客没人看呢 ...

  4. [翻译] 使用 Python 创建你自己的 Shell:Part I

    目录 使用 Python 创建你自己的 Shell:Part I 原文链接与说明 步骤 0:项目结构 步骤 1:Shell 循环 步骤 2:命令切分 步骤 3:执行 运行 使用 Python 创建你自 ...

  5. JDBC事务控制

    概念 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并 ...

  6. .net core EFcore model生成数据

    创建数据库 (扫盲贴还劳烦大神们勿喷,谢谢) 打开数据库 输入如下代码 创建数据库 CREATE DATABASE [Blogging]; GO USE [Blogging]; GO CREATE T ...

  7. 关于C#的new与override

    先放出来两个基类和派生类: public class BaseClass { public virtual void Method1(string desc) { Console.WriteLine( ...

  8. Dapper的基本 理论 知识

    简述 Dapper是一个轻量级的ORM工具:ORM框架的核心思想是对象关系映射,ORM是将表与表之间的操作,映射成对象和对象之间的操作,就是通过操作实体类来达到操作表的目的.从数据库提取的数据会自动按 ...

  9. 从零开始学安全(四十)●上传文件MIME类型绕过漏洞防御

    MIME检测原理 服务端MIME类型检测是通过检查http包的Content-Type字段中的值来判断上传文件是否合法的. php示例代码: if($_FILES['userfile']['type' ...

  10. iOS----------Bad Gateway

    今天项目因为元数据被拒,再次提交去编辑APP时,发现进不了我的APP界面,出现了如下情况,大概有10多分钟 ,一直进不去 ,公司网络一直不稳定,于是打开了我的VPN,然后就可以了.