[云原生]Docker - 镜像原理
参考:
关于Docker镜像的思考?
- Docker镜像的本质是什么?
- Docker中一个CentOS镜像为什么只有200MB,而一个CentOS操作系统的ISO文件要几个G。
- Docker中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB?
操作系统与文件系统
操作系统组成部分:
- 进程调度子系统
- 进程通信子系统
- 内存管理子系统
- 设备管理子系统
- 文件管理子系统
- 网络通信子系统
- 作业控制子系统
Linux文件系统由bootfs和rootfs两部分组成
- bootfs:包含bootloader(引导加载程序)和kernel(内核)。
- rootfs:root文件系统,包含的就是典型Linux系统中的/dev、/proc、/bin、/etc等标准目录和文件。
- 不同的Linux发行版,bootfs基本一样,而rootfs不同,如ubuntu和centos等。
Docker镜像原理
- Docker镜像是由特殊的文件系统叠加而成的。
- 最底端的是bootfs,多个容器共享宿主机的bootfs。
- 第二层是rootfs,称为base image(centos、ubuntu这些)。
- 然后再往上可以叠加其它的镜像文件。
- 联合文件系统(A Union File System,AUFS)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。
- 一个镜像可以放在另一个镜像的上面,位于下面的镜像称为父镜像,最底部的镜像称为基础镜像。
- 当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器(可写容器中保存着更改的数据)。
解答关于Docker镜像的思考
问:Docker 镜像本质是什么?
答:是一个分层文件系统。
问:Docker 中一个centos镜像为什么只有200MB,而一个centos操作系统的iso文件要几个G?
答:Centos的iso镜像文件包含bootfs和rootfs,而docker的centos镜像复用操作系统的bootfs,只有rootfs和其他镜像层。
问:Docker 中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70多MB?
答:由于docker中镜像是分层的,tomcat虽然只有70多MB,但他需要依赖于父镜像和基础镜像所有整个对外暴露的tomcat镜像大小500多MB。
本文作者:SkyBiuBiu
本文链接:https://www.cnblogs.com/Skybiubiu/p/15673175.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步