开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情
大家好,我是阿萨。今天学习一个Docker的分层机制。
Docker最经典的特点有Copy-On-Write机制,联合文件系统和分层机制。因为概念比较难理解,我们就用图片来解释。
先看下下面这张最经典的图片。
这张图片包含了哪些信息呢?
-
一个容器包含可读和可写部分。
-
容器只是在镜像的基础上增加了可写层。
-
如果是读取信息,直接从镜像层去读取信息。从最上层的镜像往下读取,读取到了之后就加载到内存中去运用。如果已经在内存中存在了。则直接开始使用。
-
如果是写内容,则将Docker的镜像中可读部分内容复制到可写部分,然后进行修改。
-
镜像层是分一层一层的。有点类似我们搭积木。 OS 相当于最底层的那块大底板。每一层镜像都在之前的基础上去添加的。
再来看看下面这两张图片:
这张图片是容器的整体构成图。
这个就是详细的搭建每一层的拆解步骤。
-
Linux操作系统是由内核Kernal和用户空间2部分组成的。bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,当boot成功 kernel 被加载到内存中,bootfs就被umount了,rootfs(root file system)包含的就是典型Linux系统中的/dev、/proc、/bin、/etc等标准目录。
-
Dockerfile的每一条指令都会创建一个新的分层。
-
所以可以看到镜像其实是一层一层的。
详细内容可以阅读docker官方文档:
如果觉得阿萨的内容对你有帮助,欢迎围观点赞。