2017-08-24 37 views
-1

每反馈使用最新版本的Docker查看Docker图像层?

更新的等于或晚于17.03多克尔的版本,如何将一个查看的图像的层?尽管我发现了较早的Docker系统的大量解决方案(请参阅this SO question),但是现在还可以完成吗?

我特别感兴趣的是能够一次删除一个图层。我回想起很久以前(在Docker的时间,大概是12-18个月!),但是,我失去了这个参考,并且在网络上的任何地方都找不到它。我从下面的第一个答案中了解到,中间层不再下载并报告为缺失,但是如果我已下载完整的图像,是否有办法一次拆下一层?

+0

修改?这次你试过了什么,现在不起作用了? – johnharris85

回答

3

您提到“AUFS”,但与存储驱动程序无关的问题。

在v1.10.0之前,docker会下载一个图像及其所有中间图层。使用docker history <image_id>您可以获得中间层ID。然后,您可以浏览/var/lib/docker/<storage_driver>/目录以查看每个中间层所引入的更改,或者您甚至可以从其中任何一个中启动容器。

这不再的情况下,根据https://github.com/moby/moby/issues/20131

” ......我们不拉父图像了你只 有他们,如果你自己建立的形象,或者如果您迁移旧。 图片链“。

请注意,docker history现在输出<missing>而不是每个不可用中间层的图像ID。

$ 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/

所以,如果你はnted搭建例子17.10图片您可以:

  1. 创建一个build目录
  2. 复制Dockerfile到构建目录。
  3. 复印支持资源来生成目录
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. 
  • cd到生成目录和运行docker build .
  • 如果你不无法访问Dockerfile,您可以尝试使用docker history no-trunc的输出创建一个`您可能遇到以下几个问题:

    1. 您可能缺少配套资源
    2. 层可以手动在这种情况下docker history输出不会告诉你什么是你之前使用完整的故事