gpt4 book ai didi

文件系统上的 Docker 镜像

转载 作者:行者123 更新时间:2023-12-02 20:04:09 27 4
gpt4 key购买 nike

我试图了解 docker 如何在文件系统上存储图像和图层。构建图像时,图层出现在 /var/lib/docker/image/overlay2/layerdb 中,图像出现在 /var/lib/docker/image/overlay2/imagedb >。但是/var/lib/docker/overlay2/里面也有文件。我现在想知道它们之间有什么区别。

tree /var/lib/docker/
|-- builder
|-- buildkit
|-- containerd
|-- containers
|-- image
| `-- overlay2
| |-- distribution
| |-- imagedb
| | |-- content
| | | `-- sha256
| | `-- metadata
| | `-- sha256
| |-- layerdb
| `-- repositories.json
|-- network
|-- overlay2
| `-- l
|-- plugins
|-- runtimes
|-- swarm
|-- tmp
|-- trust

最佳答案

好吧,我可能是错的,因为我不是 Docker 专家。但这是我在深入研究这个话题一段时间后得出的结论。

拉取镜像时,例如docker pull node:6

然后检查图像docker inspect node:6,你会看到这样的东西:

[
{
"Id": "sha256:09028f4b5ca3d043b5b3698b62defdbee3ecd8185608897c25e63a2af7e6e19c",
....
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:dd1eb1fd7e08dc9bda0cbea31a89196c453cb218bea80ce64eeb19fadc98d262",
"sha256:a42d312a03bb549752cfaf828dca867cb03763699732a584bb4fa119e0130760",
"sha256:858cd8541f7e8b7b5bb9c72e1757f7c3c8d270b7e21dae30579e0df635ddeacf",
"sha256:8451f9fe00162c8ff891c8982c5bf107cccbe1982718ef80565229ee69dd54cf",
"sha256:cbda574aa37a39a4cdf2898aa974efaf2b6035e8a25992eb1914394b209a54fb",
"sha256:e492023cc4f9bce9e608a6a6f2bb9f223167bab8a3d8d01581125a5dedc18524",
"sha256:b40c77c13a01fc9208237a4a2ee330ad56b7978a81d7c3b545613d06f9d3a6bb",
"sha256:35adca6bf7fec06b18c63a4d4fcf09e0427f61ce0788a09166a869273f894861"
]
},
}
]

/var/lib/docker/image/overlay2/imagedb/content/sha256存放的是图片的内容。您可以在此处找到 09028f4b5ca3d043b5b3698b62defdbee3ecd8185608897c25e63a2af7e6e19c

/var/lib/docker/image/overlay2/layerdb/sha256 存储一些链接到实际层的链。例如,如果您尝试在上面的 inspect (dd1eb1f...) 中找到第一层,然后查看 cache-id 文件,您将看到实际的层ID。在这种情况下,我看到 4cc446db3a09d2b9146604a6e0a8da9bc37cec32a6b9e7dfa02e21235f1f2e95

现在转到/var/lib/docker/overlay2 并搜索它(4cc44...),您会找到它。我认为这个目录实际上存储了所有层。

关于文件系统上的 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51186058/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com