出于研究目的,我试图抓取公共Docker注册表(https://registry.hub.docker.com/),并找出1)平均图像有多少层,2)这些层的大小,以了解分布情况。
然而,我研究了API和公共图书馆以及github上的细节,但我找不到任何方法:
检索所有公共存储库/图像(即使有数千个,我仍然需要一个开始列表来迭代)
找出图像的所有层
找到一个图层的大小(所以不是图像,而是单个图层)。
有人能帮我找到找回这些信息的方法吗?
谢谢你!
编辑:有人能验证在Docker注册表中搜索'*'是返回所有的存储库,而不仅仅是任何地方提到'*'的东西吗?https://registry.hub.docker.com/search?q= *
你可以在/var/lib/docker/aufs/layers;如果您将存储驱动程序配置为aufs(默认选项),则提供
例子:
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0ca502fa6aae ubuntu "/bin/bash" 44 minutes ago Exited (0) 44 seconds ago DockerTest
现在来查看使用图像“Ubuntu”创建的容器的层;转到/var/lib/docker/aufs/layers目录,以容器ID开头(这里是0ca502fa6aae*)
root@viswesn-vm2:/var/lib/docker/aufs/layers# cat 0ca502fa6aaefc89f690736609b54b2f0fdebfe8452902ca383020e3b0d266f9-init
d2a0ecffe6fa4ef3de9646a75cc629bbd9da7eead7f767cb810f9808d6b3ecb6
29460ac934423a55802fcad24856827050697b4a9f33550bd93c82762fb6db8f
b670fb0c7ecd3d2c401fbfd1fa4d7a872fbada0a4b8c2516d0be18911c6b25d6
83e4dde6b9cfddf46b75a07ec8d65ad87a748b98cf27de7d5b3298c1f3455ae4
这将通过运行显示相同的结果
root@viswesn-vm2:/var/lib/docker/aufs/layers# docker history ubuntu
IMAGE CREATED CREATED BY SIZE COMMENT
d2a0ecffe6fa 13 days ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
29460ac93442 13 days ago /bin/sh -c sed -i 's/^#\s*\ (deb.*universe\)$/ 1.895 kB
b670fb0c7ecd 13 days ago /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic 194.5 kB
83e4dde6b9cf 13 days ago /bin/sh -c #(nop) ADD file:c8f078961a543cdefa 188.2 MB
查看完整的层ID;使用——no-trunc选项作为历史命令的一部分运行。
docker history --no-trunc ubuntu