06: docker镜像分层

docker分层

docker镜像的分层(使用的是kvm 链接克隆,写时复制的特性)

1:分层的好处:重复利用,节约资源

2:镜像越大,迁移时间越长;并且你如果使用docker做集群,那么如果镜像太大,

有变化,每个更新的话,都需要很长时间。所以最好是镜像分2-3层(基础系统-应用服务-代码),集群采预与下载。

查看分层镜像信息:(请注意missing - )

[[email protected] ~]# docker history centos_ssh:v1.2 (--no-trunc)

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT

275e0f02e6b1        13 days ago         /usr/sbin/sshd -D                               32B

185aecfa154d        13 days ago         /bin/bash                                       45.2MB

0f3e07c0138f        4 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B

<missing>           4 weeks ago         /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B

<missing>           4 weeks ago         /bin/sh -c #(nop) ADD file:d6fdacc1972df524a…   220MB

如何实现

至于容器如何获取镜像层文件而又不影响到是镜像层的呢?docker是这样实现的?
如果需要获取某个文件,那么容器曾会从上到下去下一层的镜像层去获取文件,如果该层文件不存在,那么就会去下一镜像层去寻找,直到最后一层。
对于用户而言,用户面向的是一个叠加后的文件系统。

而任何对于文件的操作都会记录在容器层,例如说修改文件,容器层会把在镜像层找到的文件拷贝到容器层然后进行修改,删除文件则会在容器层内记录删除文件的记录。

大概原理图:

前面我们基于centos镜像,一层一层做了几个镜像

注意:

实际制作镜像的时候,我们应该经量把会发生变化的层放在最后,这样前面的层就可以走缓冲。(比如下图:先制作httpd 和sshd , 先制作sshd和httpd的区别)

 附上:

Docker 整体流程:

原文地址:https://www.cnblogs.com/jim-xu/p/11785882.html

时间: 2024-10-02 20:33:59

06: docker镜像分层的相关文章

理解Docker镜像分层

原文:理解Docker镜像分层 关于base镜像 base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debian, CentOS 等. base 镜像提供的是最小安装的 Linux 发行版. 我们大部分镜像都将是基于base镜像构建的.所以,通常使用的是官方发布的base镜像.可以在docker hub里找到.比如centos: htt

Docker镜像分层结构剖析

总结: 共享资源 对容器的任何改动都是发生容器层 容器层是可写可读,而镜像层只读 原文地址:https://www.cnblogs.com/weisunblog/p/12235578.html

docker的架构,镜像分层特性,dockerfile缓存特性

Docker网站:https://hub.docker.com/?Docker镜像分层的概念:Docker的最小镜像下载镜像(dockerfile的组成)docker pull hello-world Dockerfile的组成1.>FROM:scratch 抓,挠(从零开始构建)2>COPY: hello /3>CMD: ["/hello"] Base镜像(基础镜像) > ***个人理解: > 用户空间:rootfs > 内核空间 :bootfs

理解Docker(2):Docker 镜像

对于每个软件,除了它自身的代码以外,它的运行还需要有一个运行环境和依赖.不管这个软件是象往常一样运行在物理机或者虚机之中,还是运行在现在的容器之中,这些都是不变的.在传统环境中,软件在运行之前也需要经过 代码开发->运行环境准备 -> 安装软件 -> 运行软件 等环节,在容器环境中,中间的两个环节被镜像制作过程替代了.也就是说,镜像的制作也包括运行环境准备和安装软件等两个主要环节,以及一些其他环节.因此,Docker 容器镜像其实并没有什么新的理论,只是这过程有了新的方式而已. 镜像(i

Docker中的镜像分层技术详解

早在集装箱没有出现的时候,码头上还有许多搬运的工人在搬运货物,在集装箱出现以后,码头上看到更多的不是工人,而且集装箱的搬运模式更加单一,更加高效,还有其他的好处,比如:货物多打包在集装箱里面,可以防止货物之前相互影响.并且到了另外一个码头需要转运的话,有了在集装箱以后,直接把它运送到另一个容器内即可,完全可以保证里面的货物是整体的搬迁,并且不会损坏货物本身.那么docker 镜像在IT行业中也扮演着非常重要的形象. 什么是docker 镜像 就是把业务代码,可运行环境进行整体的打包 如何创建do

【Docker】镜像分层存储与镜像精简

Linux操作系统 Linux操作系统由内核空间和用户空间组成. 内核空间是kernel,用户空间是rootfs, 不同Linux发行版的区别主要是rootfs.比如 Ubuntu 14.04 使用 upstart 管理服务,apt 管理软件包:而 CentOS 7 使用 systemd 和 yum.这些都是用户空间上的区别,Linux kernel 差别不大. 所以 Docker 可以同时支持多种 Linux 镜像,模拟出多种操作系统环境. 分层存储 因为镜像包含操作系统完整的 root 文件

Docker 镜像操作

概念 image 镜像: 层叠的只读文件系统,比如有Linux针对于docker而创建的最小的镜像,和其他共享的镜像.简言之就是系统镜像文件.利用面向对象的思想,可以认为image就是一个类,而容器就该类的一个实例. Docker镜像的层次如下: 最底端是一个引导文件系统,即bootfs,这很像典型的Linux/Unix的引导文 件系统.Dockei?用户几乎永远不会和引导文件系统有什么交互.实际上,当一个容器启动 后,它将会被移到内存中,而引导文件系统则会被卸载(unmount),以留出更多的

Docker镜像文件(images)的存储结构

原文作者: Troy Howard(http://blog.thoward37.me/)原文地址:http://blog.thoward37.me/articles/where-are-docker-images-stored/ 翻译:刘斌(http://liubin.org/)本文地址:http://liubin.org/2014/03/10/about-docker-images-storage/ ? 关于本文的任何指正,请在新浪微博联系我或者在Twitter上. 如果你是刚开始接触 Doc

玩转Docker镜像

前言 Docker 是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议.通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情 况下提供资源隔离的应用运行环境.由于众多新颖的特性以及项目本身的开放性,Docker在不到两年的时间里迅速获得诸多IT厂商的参与,其中更是包括 Google.Microsoft.VMware等业界行业领导者.同时,D