docker中的图层和图像有什么区别?

Chr*_*ien 6 image docker

我知道图像由许多层组成。例如,如果你运行“docker history [Image]”,你可以得到一个id序列,顶部的id与image id相同,其余的id是层ID。

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

Tho*_*eil 5

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

正是由于层的存在,当您拉取图像时,您最终不必下载其所有文件系统。如果您已经有另一个映像,其中包含您拉取的映像的某些层,则实际上只会下载缺少的层。

这些剩余层 ID 是否对应于其他一些图像?

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

我可以将图层视为图像吗?

是的


展示案例

docker pull busybox
docker history busybox
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

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

docker run -it cfa753dfea5e sh -c "ls /"
Run Code Online (Sandbox Code Playgroud)
bin   dev   etc   home  proc  root  sys   tmp   usr   var
Run Code Online (Sandbox Code Playgroud)