Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 什么';docker中图层和图像的区别是什么?_Image_Docker - Fatal编程技术网

Image 什么';docker中图层和图像的区别是什么?

Image 什么';docker中图层和图像的区别是什么?,image,docker,Image,Docker,我知道图像由许多层组成。 例如,如果您运行“docker history[Image]”,您可以获得一系列ID,顶部的ID与图像ID相同,其余ID为图层ID 在这种情况下,这些rest层ID是否对应于其他一些图像?如果为真,我可以将层视为图像吗?从 Docker映像是只读模板。例如,一个映像可以包含一个安装了Apache和web应用程序的Ubuntu操作系统。图像用于创建Docker容器。Docker提供了一种构建新图像或更新现有图像的简单方法,或者您可以下载其他人已经创建的Docker图像。D

我知道图像由许多层组成。 例如,如果您运行“docker history[Image]”,您可以获得一系列ID,顶部的ID与图像ID相同,其余ID为图层ID

在这种情况下,这些rest层ID是否对应于其他一些图像?如果为真,我可以将层视为图像吗?

Docker映像是只读模板。例如,一个映像可以包含一个安装了Apache和web应用程序的Ubuntu操作系统。图像用于创建Docker容器。Docker提供了一种构建新图像或更新现有图像的简单方法,或者您可以下载其他人已经创建的Docker图像。Docker映像是Docker的构建组件。 每个图像由一系列层组成。Docker利用union文件系统将这些层组合成一个图像。联合文件系统允许透明地覆盖单独文件系统(称为分支)的文件和目录,从而形成一个统一的文件系统

Docker如此轻量级的原因之一是因为这些层。例如,当您更改Docker映像时,请将应用程序更新为新版本—将生成一个新层。因此,与替换整个映像或完全重建(您可以使用虚拟机)不同,只添加或更新该层。现在,您不需要发布一个全新的图像,只需更新即可,从而使分发Docker图像更快、更简单

我喜欢用备份类型来看待这些事情。我们可以创建完整备份,然后创建增量备份。完全备份不会更改(虽然在某些系统中,为了减少每次增量备份后的恢复时间,完全备份会更改为包含更改,但在本讨论中,我们可以忽略这种情况),只以单独的方式备份更改。所以我们可以有不同的备份层,就像我们有不同的图像层一样

编辑: 有关详细信息,请查看以下链接:

是Docker映像和Docker容器的文件系统的组成部分

多亏了这些层,当您下载时,您最终不必下载它的所有文件系统。如果您已经有另一个图像,其中包含您所拉图像的某些层,则实际上只下载缺少的层

这些rest层ID是否对应于其他一些图像

是的,它们就像图像一样,但是没有任何标签来识别它们

我可以将图层视为图像吗


展示柜 现在从图层
cfa753dfea5e
创建一个新容器,就像它是一个图像一样:

docker run -it cfa753dfea5e sh -c "ls /"

层和图像不是严格的同义词。

从Docker hub中提取图像时,“层”具有“图像ID”。 将更改提交到本地生成的图像时,这些层将具有图像ID。直到你推到Dockerhub。只有叶图像将具有所有其他用户的图像ID,这些用户将获取您上载的图像

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
d7057cb02084        39 hours ago        /bin/sh -c #(nop) CMD ["sh"]                    0 B
cfa753dfea5e        39 hours ago        /bin/sh -c #(nop) ADD file:6cccb5f0a3b3947116   1.096 MB
docker run -it cfa753dfea5e sh -c "ls /"
bin   dev   etc   home  proc  root  sys   tmp   usr   var