Docker—— 镜像原理容器快照commit

Posted 玛丽莲茼蒿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker—— 镜像原理容器快照commit相关的知识,希望对你有一定的参考价值。

一、如何得到镜像

1)从远程仓库下载

2)朋友/同事拷贝给你

3)自己制作DockerFile

二、联合文件系统

Docker的镜像是由一层层的文件系统组成,这种层级的文件系统叫做联合文件系统UnionFS。

 

三、Docker镜像加载原理 

1. bootfs:没太明白。。。

2. rootfs:

对于一个精简的OS(比如centos镜像),rootfs很小,只需要包含最基本的命令、工具和程序库就可以了,因为底层使用的是宿主机的kernel。 

 

四、分层

 我们用inspect命令查看镜像的元数据,在“RootFS” 属性可以查看镜像都由哪些层构成。

 而这些层是可以被多个镜像共享的。比如我们之前已经下载过了centos镜像,现在我们要下载Redis镜像(6层),而Redis镜像的第一层刚好是centos,那么下载Redis镜像的时候实际上只需要下载5层就可以了,最底层直接用centos镜像。

容器层和镜像层 

Docker镜像自身包含的层叫做镜像层, 如果我们想对容器进行一些操作,然后再次发布这个容器。就相当于额外增加了一层,就叫做容器层

当容器运行时,容器层自动被加载到镜像层的顶部。

 

五、如何保存镜像的状态

当我们对已有的镜像做了修改,如何提交一个新的镜像?也可以理解成虚拟机的“快照”,我们如何保存docker容器的快照呢?commit命令!

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

 

 

以上是关于Docker—— 镜像原理容器快照commit的主要内容,如果未能解决你的问题,请参考以下文章

Docker commit镜像 制作docker镜像

Docker---联合文件系统和commit补充操作

linux12 - docker容器04 -->安装nginx和tomcat

docker commit命令创建新的镜像

Docker镜像commit

docker commit