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. 【Android Studio安装部署系列】三十七、从Android Studio3.2升级到Android Studio3.4【以及创建Android Q模拟器】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 保持Android Studio开发环境的最新版本. 下载Android Studio3.4 使用Android Studio自带的 ...

  2. SpringBoot进阶教程(二十三)Linux部署Quartz

    在之前的一篇文章中<SpringBoot(九)定时任务Schedule>,已经详细介绍了关于schedule框架的配置和使用,有收到一些朋友关于部署的私信,所以抽时间整理一个linux部署 ...

  3. Service Worker

    Service Worker 随着前端快速发展,应用的性能已经变得至关重要,关于这一点大佬做了很多统计.你可以去看看. 如何降低一个页面的网络请求成本从而缩短页面加载资源的时间并降低用户可感知的延时是 ...

  4. Lumen框架-错误&日志

    介绍 当你开始一个新的Lumen项目的时候,错误和异常功能,已经在框架中注入了.此外,Lumen还集成了Monolog日志函数,支持和提供多种强大的日志处理功能. 配置 错误详情 大量的错误信息在你的 ...

  5. ado.net的简单数据库操作(二)之封装SqlHelperl类

    今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...

  6. C# 委托链(多播委托)

    委托既可以封装一个方法,又可以对同一类型的方法进行封装,它就是多播委托 using System; using System.Collections.Generic; using System.Lin ...

  7. powdesingner 更新数据库表结构

    1.连接数据库 2更新数据库表结构

  8. Java学习点滴——泛型

    基于<Java编程思想>第四版 前言 虽然Java的泛型在语法上和C++相比是类似的,但在实现上两者是全然不同的. 语法 Java只需要一个<>就可定义泛型.在<> ...

  9. 给dao层注入jdbcTemplate时的一个强行bug(jdbcDaoSupport不要随便用!用了要记得!)

    记录Dao层一个鱼唇至极的错误 这一天我在使用Spring的进行注解配置项目时, 我的Idea给我抛了一个如下的错误: Exception in thread "main" org ...

  10. 26 , CSS 构造表单

    1. 表单标签使用 2. 下拉菜单背景 3. 滚动条的使用 4. 结构化表单布局 1 1 1 1. . . . 表单标签的使用 <label for=”name”>姓名: <inpu ...