获取 docker 镜像的父镜像

sno*_*839 5 image parent docker

有没有办法获取给定图像的 docker 父图像树?我知道 docker history IMG_NAME将为您正在使用的当前图像提供图像 ID,但其他所有内容都丢失了。我读过这是出于安全考虑在 v1.10 中删除的,但似乎更大的问题是无法验证创建最终图像的图像树。

我发现的另一件事是docker save IMG_NAME -o TAR_OUTPUT.tar它可以让您查看每一层中的所有文件,但这似乎很乏味。

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

use*_*097 2

除了 chintan 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 jessie 的 Dockerfile

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

并注意这个图像是这样构建的

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

因此,如果您想查看所有文件的来源,则需要执行此操作。

如果通知了安全问题,您还需要执行此操作,以便了解您是否担心。

  • 那么,如果 Docker Hub 上的社区镜像没有镜像 github 上的完整 DockerFile,我们是否可以不对它们进行任何类型的验证?图像本身不再包含获取父图像的信息? (2认同)