文章目录

  • 参考视频
  • 1.思考
  • 1.1.Docker镜像的本质是什么?
  • 1.2.为什么CentOS操作系统的iso文件要好几G,但Docker中的CentOS镜像却只有200MB?
  • 1.3.为什么Tomcat安装包只有70MB,但Docker中的Tomcat安装包却足足有500MB?
  • 2.Docker镜像原理
  • 2.1.Linux文件系统的组成
  • 2.2.Docker镜像原理


参考视频

18-dockerfile-镜像原理

1.思考

1.1.Docker镜像的本质是什么?

是一个分层的文件系统。

1.2.为什么CentOS操作系统的iso文件要好几G,但Docker中的CentOS镜像却只有200MB?

  • CentOS的ISO镜像文件包含bootfs和rootfs;
  • Docker的CentOS镜像复用了宿主机的bootfs,其本身只包含rootfs和其他的镜像层。

1.3.为什么Tomcat安装包只有70MB,但Docker中的Tomcat安装包却足足有500MB?

  • tomcat安装包只有tomcat本身,相关的依赖还需要自己安装;
  • Docker的tomcat镜像中,包含了tomcat运行所依赖的jdk镜像等各种依赖镜像以及基础镜像,这一整个对外暴露的tomcat镜像大小总和达到了500+MB。

2.Docker镜像原理

2.1.Linux文件系统的组成

iso镜像局域网yum源 iso镜像原理_linux

Linux文件系统由bootfs和rootfs组成:

  • bootfs:包含bootloader(引导加载程序)和kernel(内核),所有的Linux发行版几乎都一致,占用空间较大,启动较为费时
  • rootfs:root文件系统,包含/dev、/proc、/bin、/etc等标准目录和文件,不同Linux发行版(ubuntu、centos)各不相同

2.2.Docker镜像原理

Docker镜像是由特殊的文件系统叠加而成的

  • 镜像的最底层是bootfs(驱动和内核)。但由于镜像运行时会直接使用宿主机的bootfs,因此在拉取时并不会下载bootfs;
  • 镜像的第二层是rootfs(root文件系统:centos/ubuntu),被称为base image(基础镜像);
  • 再往上,叠加其他的依赖镜像文件;

拉取镜像的本质,是检测所有层的安装情况,下载未安装的镜像层并执行安装

  • 拉取镜像时,会逐层检查镜像的安装情况。若某一层的镜像未安装,则会下载并安装,直至所有层都安装完毕。
  • 在拉取镜像时,该镜像的文件大小实际上还包括了其所有的依赖镜像(如tomcat依赖于jdk和rootfs)

iso镜像局域网yum源 iso镜像原理_Docker_02