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

使用最新版本的docker查看docker图像层?

伍皓
2023-03-14

根据反馈更新

对于等于或高于17.03的Docker版本,如何查看图像的图层?虽然我为早期的Docker系统找到了大量的解决方案(见这个问题),但现在还能这样做吗?

我特别感兴趣的是能够一次删除一层。我记得很久以前读过这篇文章(在Docker时代,大约12-18个月!)然而,我丢失了那个参考资料,在网上的任何地方都找不到。我从下面的第一个答案中了解到,中间层不再下载并报告丢失,但如果我下载了整个图像,是否有办法一次将其拆分一层?

共有1个答案

曾典
2023-03-14

您提到了“AUF”,但这个问题与存储驱动程序无关。

在v1.10.0之前,docker会下载一个图像及其所有中间层。使用docker历史记录

据报道,情况已不再如此https://github.com/moby/moby/issues/20131:

“......我们不再提取父图像。只有您自己构建图像或迁移旧图像链时,您才能拥有它们。”

请注意,docker history现在输出

$ docker history ubuntu
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
ccc7a11d65b1        2 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           2 weeks ago         /bin/sh -c mkdir -p /run/systemd && echo '...   7B                  
<missing>           2 weeks ago         /bin/sh -c sed -i 's/^#\s*\(deb.*universe\...   2.76kB              
<missing>           2 weeks ago         /bin/sh -c rm -rf /var/lib/apt/lists/*          0B                  
<missing>           2 weeks ago         /bin/sh -c set -xe   && echo '#!/bin/sh' >...   745B                
<missing>           2 weeks ago         /bin/sh -c #(nop) ADD file:39d3593ea220e68...   120MB            

更多信息请参见:https://github.com/moby/moby/wiki/Engine-v1.10.0-content-addressability-migration

也就是说,如果您可以访问Dockerfile和用于构建映像的支持资源,那么您可以在本地构建映像(这将保存每个中间层)

Ubuntu在此处发布其Dockerfiles:https://hub.docker.com/_/ubuntu/

因此,如果您想构建一个17.10图像作为示例,您可以:

  1. 创建生成目录
In this case the dockerfile contains the following command:
ADD ubuntu-artful-core-cloudimg-amd64-root.tar.gz /
You can find that file with a Google search 
Note: The ADD command automatically extracts and unzips recognized formats.

如果您没有docker文件的访问权限,可以尝试使用docker history的输出创建一个docker文件——no trunc

  1. 您可能缺少支持资源
  2. 可以手动修改图层,在这种情况下,docker history的输出不会告诉您全部情况
 类似资料:
  • 我目前正在运行官方的ghost Docker映像,并使用该映像构建几个容器。 如果我想更新my Docker映像,我只需使用以下命令:

  • 我做了一个docker拉,可以列出下载的图像。我想看看这张图片的内容。在网上搜索,但没有直接的答案。

  • 我知道docker已经弃用了docker images命令中的tree标志。但我找不到任何方便的命令来获得相同的输出,比如docker图像——tree。我找到了dockviz。但这似乎是另一个需要运行的容器。是否有任何内置cli命令可以在不使用dockviz的情况下查看图像的树视图

  • 我知道我可以使用这个命令$docker images-tree查看docker图像的层,但是我如何在不拉动docker Hub的情况下查看docker图像?这是为了在下载图像之前知道图像上的内容。 E、 对于Tomcat回购,https://registry.hub.docker.com/_/tomcat/,网页似乎没有显示图像上的内容。我必须查看Github上的Dockerfile才能找到答案。

  • 我目前正在使用https://medium.com/@sunnykay/docker-开发-工作流-节点-快递-蒙戈-4bb3b1f7eb1e尝试这个教程 第一部分在构建< code>docker-compose.yml的地方运行良好,在本地构建完全运行良好,因此我尝试标记它,并将其推入我的< code>dockerhub以了解和尝试更多内容。 这最初是文件中的内容,然后是教程 当我使用< cod

  • docker pull 这个命令 我当时想的是拉取最新版本的镜像 结果发现tag是latest 但是版本不是最新的 dockerhub库中有最新的 这是不是说明我的docker拉取的仓库不对啊 怎么修改 或配置 我配置了阿里加速 下面是配置的阿里的