hash - Docker层信息发布v1.10

标签 hash docker

我曾经使用Docker history命令检查图像中各层的大小,尽管由于1.10迁移到内容哈希后,现在显示的是“丢失”而不是层ID。

现在,我通过以下命令检索图像中所有图层的哈希值:

docker pull ubuntu
ID=$(docker inspect -f {{.Id}} ubuntu)
sudo jq .rootfs.diff_ids /var/lib/docker/image/aufs/imagedb/content/$(echo $ID|tr ':' '/')

这将返回ubuntu镜像中所有层的内容哈希列表:
"diff_ids": [
  "sha256:2a4049cf895d2384cb93d19f46f0d62560a48b2b202787edad2dc6e4b95a923a",
  "sha256:01fbb4b5fa1b76ccdc289de098ea61925c7f8d3364159761720617b096f27bcc",
  "sha256:d3492de15d7c87ea9db9ab123214d334f4bcb1e40846b77beebb4c37dd134a45",
  "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
],

在/ var / lib / docker / image / aufs / layerdb / sha256 /中,我看到有关每一层的信息,例如父级和大小,但我注意到此文件夹中的diff_id与上面的输出不同:
> ls /var/lib/docker/image/aufs/layerdb/sha256/
2088e4744016dbe95308d1920060f1fbc4a095ba5b9517d758745fc3986f2632
2a4049cf895d2384cb93d19f46f0d62560a48b2b202787edad2dc6e4b95a923a
8c63d05abe660a2f3f04d754de3ee3d927a17b3623a8e2be6d727e697f4b1e10
f747ac597de13b7f1ff918874f80bb83004232d7d6d4d45ad8890b58cdc79adc

然后,我尝试检查另一个文件夹,例如/ var / lib / docker / aufs / layers:
> ls /var/lib/docker/aufs/layers#
58e7ed1f6d4ba047c9c714e66f10c014008ef4aa133d334198b8b1b7673f16e7
c4dd5a81188e36457624849aaeea74d98ef571390db75d4a03efb5bccb8c04e3
d31f918b7f59fcf768a9ae609141152cd5ae63943aac042429e3d2e04d472bcc
e576c6d41b96bd6a47233a6c6ec2f586021aa945aae6bd0e73ab9d4ad051a94e

如您所见,这些又是另外4个内容哈希。有人可以告诉我所有这些哈希之间的联系是什么,如何找到Ubuntu镜像每一层的大小?我希望能够将第一个输出中的每个diff_id与一个大小匹配,但是我不知道不同文件夹中的所有这些diff_id是如何关联的。

编辑:我这样解决-/ var / lib / docker / image / aufs / layerdb / sha256 /还包含一个名为“diff”的文件,其中包含与第一个命令的输出相对应的diff_id。我使用此输出将大小映射到正确的diff_id。

最佳答案

我是这样解决的:/ var / lib / docker / image / aufs / layerdb / sha256 /还包含一个名为“diff”的文件,其中包含与第一个命令的输出相对应的diff_id。我使用此输出将大小映射到正确的diff_id。

关于hash - Docker层信息发布v1.10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35750163/

相关文章:

python - 努力使用 Docker 卷和 Flask 写入文件

Perl - 散列和列的散列 :(

php - 安全问题,php/mysql

php - MySQL 表中的 64 位密码哈希

java - 实现固定大小的 HashMap

Bash 脚本错误地将\r 合并到变量中

python - 如何在 Docker Compose 中通过 Privoxy 将 Scrapy 与 Splash 和 Tor 结合使用

Java HashSet 使用指定的方法

docker - 如何在 github actions 中连接到 docker 容器?

docker - 使用 docker Push 到私有(private)注册表(Heroku 注册表)时出现 401 错误