Docker学习笔记五:Docker分层机制

133 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情

大家好,我是阿萨。今天学习一个Docker的分层机制。

Docker最经典的特点有Copy-On-Write机制,联合文件系统和分层机制。因为概念比较难理解,我们就用图片来解释。

先看下下面这张最经典的图片。

Image

这张图片包含了哪些信息呢?

  1. 一个容器包含可读和可写部分。

  2. 容器只是在镜像的基础上增加了可写层。

  3. 如果是读取信息,直接从镜像层去读取信息。从最上层的镜像往下读取,读取到了之后就加载到内存中去运用。如果已经在内存中存在了。则直接开始使用。

  4. 如果是写内容,则将Docker的镜像中可读部分内容复制到可写部分,然后进行修改。

  5. 镜像层是分一层一层的。有点类似我们搭积木。 OS 相当于最底层的那块大底板。每一层镜像都在之前的基础上去添加的。

再来看看下面这两张图片:

Image

这张图片是容器的整体构成图。

Image

这个就是详细的搭建每一层的拆解步骤。

  1. Linux操作系统是由内核Kernal和用户空间2部分组成的。bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,当boot成功 kernel 被加载到内存中,bootfs就被umount了,rootfs(root file system)包含的就是典型Linux系统中的/dev、/proc、/bin、/etc等标准目录。

  2. Dockerfile的每一条指令都会创建一个新的分层。

  3. 所以可以看到镜像其实是一层一层的。

详细内容可以阅读docker官方文档:

docs.docker.com/storage/

如果觉得阿萨的内容对你有帮助,欢迎围观点赞。