2017-06-22 68 views
2

有没有办法获得给定图像的泊坞窗父图像树?我知道 docker history IMG_NAME将为您正在使用的当前图片提供图片ID,但其他所有内容均已丢失。我读过这篇文章是为了安全考虑而在v1.10中取出的,但它似乎是一个更大的担忧,无法验证最终图像是由哪个图像树创建的。获取泊坞窗图像的父图像

我发现的其他东西是docker save IMG_NAME -o TAR_OUTPUT.tar它可以让你查看每一层的所有文件,但看起来很乏味。

我怎么能保证,在给定的图像中修改一个软件的唯一的东西是软件本身的安装和配置。看起来,能够看到用于生成每个连续图像的Dockerfiles中的更改将是验证这一点的简单方法。

+0

你有没有像'v1.0'和'v2.0'这样的图像创建tar文件?比较两个tar与任何文件/目录比较工具,如http://meldmerge.org/或任何你选择。 –

回答

0

除了已被说明由钦塔thakar,你将不得不迭代也许几次。

一个例子应该澄清这种

假设你想挖成一个图像,而Dockerfile创造这一形象开始与

FROM wordpress

让你去

https://hub.docker.com/_/wordpress/

看看Dockerfile,你注意到

https://github.com/docker-library/wordpress/blob/0a5405cca8daf0338cf32dc7be26f4df5405cfb6/php5.6/apache/Dockerfile

开始与

FROM php:5.6-apache

让你去到PHP 5.6参考在

https://github.com/docker-library/php/blob/eadc27f12cfec58e270f8e37cd1b4ae9abcbb4eb/5.6/apache/Dockerfile

,你会发现在Dockerfile与

开始FROM debian:jessie

让你去Debian的杰西的Dockerfile在

https://github.com/debuerreotype/docker-debian-artifacts/blob/af5a0043a929e0c87f7610da93bfe599ac40f29b/jessie/Dockerfile

,并注意到这个图像是建立这样

FROM scratch ADD rootfs.tar.xz/ CMD ["bash"]

所以,你需要的,如果做到这一点你想看看所有文件来自哪里。

如果有通知的安全问题,您还需要这样做,以便知道您是否担心。

+0

因此,如果Docker Hub上的社区图像没有镜像github上的完整DockerFile,那么我们不可以对其进行任何类型的验证?图像本身不再包含获取父图像的信息? – snowman4839

+0

当你有一个图像但不是Dockerfile时,你可以或多或少的重建它,看到我的Python代码在https://stackoverflow.com/questions/35331988/docker-how-to-access-the-dockerfile-of- an-image/35332319#35332319因为它似乎https://github.com/CenturyLinkLabs/dockerfile-from-image已损坏。但是当你在Dockerfile中看到'COPY */opt'时,你不知道哪些文件被复制了 – user2915097

+0

这似乎是复制docker历史记录的输出,它返回一堆“缺失”图层 – snowman4839