当前位置: 首页 > 知识库问答 >
问题:

查找每个Docker图像的层和层大小

凌照
2023-03-14

然而,我研究了API和公共库以及github的细节,但我找不到任何方法来:

  • 检索所有公共存储库/映像(即使有数千个,我仍然需要一个开始列表来迭代)
  • 查找图像的所有层
  • 查找层的大小(因此不是图像,而是单个层的大小)。

谁能帮我找到检索这些信息的方法吗?

共有1个答案

陆仲渊
2023-03-14

您可以在文件夹/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目录并cat该文件以容器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 
docker history --no-trunc ubuntu
 类似资料:
  • 我需要了解docker图像注册表的脱机使用情况 当docker图像从microsoft官方网站中提取、调整,然后推送到注册表时,它是完整的图像还是缺少图层 当其他主机从注册表中提取图像(可能脱机使用)时,客户端主机是否仍需要internet连接才能从microsoft服务器中提取缺失/机密层?(或者是从microsoft提取的完整图像,然后推送到注册表?) 签名呢?当图像被调整、存储在其中的应用程

  • 我是Docker的新手,正在尝试准确理解Docker映像是什么。Docker映像的每个定义都使用术语“层”,但似乎没有定义层的含义。 从Docker官方文件: 我们已经看到Docker图像是只读模板,从中启动Docker容器。每个图像由一系列层组成。Docker利用union文件系统将这些层合并到单个图像中。Union文件系统允许透明地覆盖单独文件系统(称为分支)的文件和目录,形成单个连贯的文件系

  • 我对Docker是全新的,我正在努力理解Docker形象到底是什么。Docker图像的每个定义都使用术语“层”,但似乎没有定义层的含义。

  • 根据反馈更新 对于等于或高于17.03的Docker版本,如何查看图像的图层?虽然我为早期的Docker系统找到了大量的解决方案(见这个问题),但现在还能这样做吗? 我特别感兴趣的是能够一次删除一层。我记得很久以前读过这篇文章(在Docker时代,大约12-18个月!)然而,我丢失了那个参考资料,在网上的任何地方都找不到。我从下面的第一个答案中了解到,中间层不再下载并报告丢失,但如果我下载了整个图

  • 让我们以whalesay图片为例<代码>docker history显示以下内容: 我想提取显示为的层。有这样做的工具/方法吗?

  • 这个问题的根源是从docker私有注册表中提取的速度非常慢。 然后我发现通过注册表远程API的速度是可以的。 现在我得到一个图像的层。如何将其作为映像加载到docker守护程序? ps: 我试着加载docker 结果如下。 FATA[0015]错误:打开 /home/docker/data/docker/tmp/docker-import-087506163/repo/etc/json:没有这样的