1. Docker镜像的主要特点

(1) 采用分层构建机制。

最底层为bootfs,用于系统引导的文件系统,包括bootloader和kernel,容器启动后会被卸载以节约资源。

其上为rootfs,位于bootfs之上,表现为docker容器的根文件系统。

再其上叠加层,docker中,rootfs由内核挂载为“只读”模式,而后通过“联合挂载(union mount)”技术额外挂载“可写”层。

(2) 写时复制

多个容器共享镜像,每个容器启动的时候并不需要单独复制一份镜像文件,而是将所有镜像层以只读的方式挂载到一个挂载点,再在上面覆盖一个可读写的容器层。

当需要修改容器镜像内的某个文件时,只对处于最上方的读写层进行变动,不覆写下层已有文件系统的内容,已有文件在下层仍然存在,但会被读写层的新版文件所隐藏。

(3) 内容寻址

以内容校验哈希值作为镜像层的标识

(4) 联合挂载

可以在一个挂载点同时挂载多个文件系统,将原目录与新挂载内容进行整合。

Ubuntu默认使用aufs,从3.18版开始overlayfs合并到内核。

2. 关键概念

(1) registry

用以保存Docker镜像,其中还包括镜像层次结构和关于镜像的元数据。

启动容器时,docker daemon会试图从本地获取相关镜像,本地不存在是,将从Registry下载该镜像。

官方默认registry是DockerHub,也可以指定其他。

(2) repository

由具有某个功能的docker镜像的所有迭代版本构成的镜像组,不通版本的镜像用标签进行区分。比如ubuntu:14.04

registry是repository的集合,repository是镜像的集合。

(3) dockerfile

dockerfile是通过docker build命令构建自己的docker镜像时需要使用到的定义文件。

3. 镜像构建

(1)基于容器制作镜像

使用docker commit命令制作;
使用docker tag加标签;
docker inspect 容器名,查看容器信息

(2)使用dockerfile构建镜像

使用docker build命令

4. 镜像持久化

(1) docker export ; docker import

用于持久化容器,会丢失所有历史

(2) docker save ; docker load

用于线下的方式持久化镜像,没有丢失历史和层

(3) docker pull ; docker push

用于线上的方式持久化镜像,没有丢失历史和层

docker基础——2.镜像管理的更多相关文章

  1. docker基础之镜像

    获取镜像 从 Docker Registry 获取镜像的命令是 docker pull.其命令格式为: docker pull [选项] [Docker Registry地址]<仓库名>: ...

  2. Docker进阶之四:镜像管理

      一.什么是镜像? 简单说,Docker镜像是一个不包含Linux内核而又精简的Linux操作系统. 二.镜像从哪里来? Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容 ...

  3. Docker容器与镜像管理

    目录 容器管理 运行容器 容器的启停操作 容器导入导出 容器生命周期管理 容器资源限制 内存限制 CPU限制 io 限制 镜像管理 镜像命名规范 镜像基本操作 容器管理 运行容器 1.运行一个容器示例 ...

  4. docker基础_docker镜像与分层

    docker镜像与分层 docker镜像由一些松耦合的制度镜像层组成 docker负责堆叠这些镜像层并将它们表示为单个统一的对象 当 docker image pull ubuntu:latest 时 ...

  5. docker 基础之镜像加速

    国内访问 Docker Hub 有时会遇到困难,此时可以配置镜像加速器 对于使用 systemd 的系统,用 systemctl enable docker 启用服务后,编辑 /etc/systemd ...

  6. docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态

    一.自定义镜像 1,案例1 要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig ...

  7. Docker基础知识及入门

    什么是Docker? Docker是由dotcloud公司使用golang语言进行开发的,基于Linux内核的 cgroup,namespace,以及OverlayFS类的Union FS等技术,对进 ...

  8. Docker镜像管理基础篇

    Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...

  9. docker第三篇 镜像管理基础

    docker 工作原理: 常用的命令docker run .create .start... 都是客户端命令 Docker Daemon 接收到客户端传过来的命令以后 docker daemon会根据 ...

随机推荐

  1. Java:对一个对象序列化和反序列化的简单实现

    名词解释 序列化:将Java对象转化成字节的过程 反序列化:将字节转化成Java对象的过程 字节:1字节(byte)= 8bit,bit就是计算机认识的二进制 序列化的作用 Java对象是在Java虚 ...

  2. 把rocksdb配置成leveldb

    将rocksdb配置成leveldb 1.配置方法 配置方式有三种: 第一种适合进行性能测试对比:是以参数形式在运行db_bench或ycsb-c的时候以参数形式将rocksdb将其配置成leveld ...

  3. java运算符2

    续: 位运算符(<<,>>,>>>) 1.<<: 3<<2,二进制左移2位,右边用0补齐       3的二进制:00000000 0 ...

  4. 什么是css Modules

    具体请参考阮一峰老师的博客(http://www.ruanyifeng.com/blog/2016/06/css_modules.html)

  5. centos7 修改网卡信息

    修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0 有一些不是eth0 也可能是ens33 修改完成后使用下面命令进行重启 systemctl ...

  6. Jenkins Hackfest 用户体验文档报告

    Jenkins 技术文档是我们项目的重要组成部分,因为它是正确使用 Jenkins 的关键.好的文档可以指导用户,并鼓励选择好的实现方式.这是用户体验的关键部分.在最近的 Jenkins UI/UX ...

  7. 带你自定义实现Spring事件驱动模型

    Spring 事件驱动模型概念 Spring 事件驱动模型就是观察者模式很经典的一个应用,我们可以通过Spring 事件驱动模型来完成代码的解耦. 三角色 Spring 事件驱动模型或者说观察者模式需 ...

  8. 深入浅出 CSS 动画

    本文将比较全面细致的梳理一下 CSS 动画的方方面面,针对每个属性用法的讲解及进阶用法的示意,希望能成为一个比较好的从入门到进阶的教程. CSS 动画介绍及语法 首先,我们来简单介绍一下 CSS 动画 ...

  9. redis 入门使用

     一.Redis 数据类型及结构特点 Redis 最常见的5中数据结构有 String(字符串),List(列表),Set(集合),Hash(散列),Sorted Sets (有序集合),下表简单总结 ...

  10. 【刷题-LeetCode】151 Reverse Words in a String

    Reverse Words in a String Given an input string, reverse the string word by word. Example 1: Input: ...