Docker镜像原理

Docker中的镜像是由若干个文件系统叠加而成的。一个镜像可能是由多个系统组装而成的。

Docker中有得镜像很大,有得镜像很小,比如tomcat镜像是500M,而tomcat的安装包只有70M,centos的镜像有200M,但是centos操作系统的ios却有10个g。

了解了Docker的镜像原理之后便可以理解以上的问题。

一些概念

镜像:Docker镜像,就相当于是一个root文件系统

容器:使用镜像创建容器,镜像是静态的定义,而容器则是镜像运行的实体。

一个linux文件系统由bootfs和rootfs两部分组成。

bootfs:包含引导加载程序和内核。

rootfs:root文件系统,就是linux中标准的文件目录等。

不同的linux发行版,其bootfs都是一样的,不一样的是rootfs.

 

一个centos镜像只有200M其实是依赖的宿主机的bootfs.而不同的发行版本有自己的rootfs。这样子叠加而成就形成了一个镜像。

 

一个镜像可以放在另外一个镜像的上面,位于下面的镜像称为父镜像,最底部的称之为基础镜像。

当从一个镜像启动容器时,docker会在顶端加在一个可读写的文件系统作为容器。

一个tomcat的容器,由如下镜像组成。

 

它由不同的文件系统组成,在我们看来是一个tomcat镜像,其实它依赖了很多不同的文件系统,而这些文件系统又可以供他人使用。

所以在docker中可以使用一个镜像创建不同的容器,就像类和对象的关系。

 

posted @ 2022-12-24 17:55  swayer  阅读(71)  评论(0编辑  收藏  举报