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. Jenkins_忘记管理员密码的处理方法

    1.查看jenkins配置存放目录 2.修改config.xml的useSecurity的true为flase 3.重启jenkins服务 4.进入jenkins,不输入密码直接就进入了jenkins ...

  2. 详解nohup /dev/null 2>&1 含义的使用

    https://www.jb51.net/article/169837.htm 这篇文章主要介绍了详解nohup /dev/null 2>&1 含义的使用,文中通过示例代码介绍的非常详细 ...

  3. yum是什么?repo文件详解,epel简介,yum源的更换,repo和epel区别

    yum是什么?repo文件详解,epel简介,yum源的更换,repo和epel区别 简单概括: repo和epel的关系 repo是配置源的,即配置从哪里下载包(以及依赖关系)的. epel是作为桥 ...

  4. Three.js 实现虎年春节3D创意页面

    背景 虎年 春节将至,本文使用 React + Three.js 技术栈,实现趣味 3D 创意页面.本文包含的知识点主要包括:ShadowMaterial. MeshPhongMaterial 两种基 ...

  5. Mybatis配置解析(核心配置文件)

    4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...

  6. 信息收集&Fuzz

    本文译自https://0xjoyghosh.medium.com/information-gathering-scanning-for-sensitive-information-reloaded- ...

  7. 【Java】回形数

    回形数 键盘读入一个整数n(1-20),以n为矩阵大小,把1,2,3,4,5-按顺时针螺旋的形式填入. import java.util.Scanner; public class HuiXingSh ...

  8. 【采坑小计】thanos receiver的官方文档中,并未说明tsdb落盘的配置方式

    官方文档的地址在:https://thanos.io/tip/components/receive.md/ 一开始以为落盘的时间间隔是:--tsdb.retention=15d 实际测试中发现,tha ...

  9. 【解决了一个小问题】go.mod文件中引用另一个库,总会自动拉取新版本

    我的项目依赖某个旧的公共库: require ( git.xxx.com/myprj/mylib v0.0.43 ) 可以编译的时候,系统总会自动加上这样的路径: require ( git.xxx. ...

  10. MySQL查询处理——逻辑查询处理和物理查询处理

    对于查询处理,可将其分为逻辑查询处理和物理查询处理.逻辑查询处理表示执行查询应该产生什么样的结果,而物理查询代表MySQL数据库是如何得到结果的. 逻辑查询处理 MySQL真正的执行顺序如下: (8) ...