Docker 入门系列四:Dockerfile-镜像原理

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镜像是有特殊的文件系统叠加而成
  • 最底端是bootfs,并使用宿主机的bootfs
  • 第二层是root文件系统rootfs,称为base image
  • 然后在往上可以叠加其他的镜像文件
  • 统一文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看,只存在一个文件系统。
  • 一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像成为基础镜像。
  • 当从一个镜像启动容器是,Docker会在最顶层加载一个读写文件系统作为部署

实现复用

Docker 入门系列四:Dockerfile

附灵魂三问答案:

  1. Docker的本质是一个文件系统
  2. Centos的iso镜像文件包含bootfs和rootfs,而docker的centos镜像服用操作系统的bootfs,只有rootfs和其他镜像层
  3. 由于docker中镜像是分层的,tomcat虽然只有70多MB,但他需要依赖与父镜像和基础镜像,所有整个对外暴露的tomcat镜像大小500多MB。
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!