如何检查Docker镜像中的某些属性

我的组织中有一套Docker基础镜像。 我有一个技术堆栈(例如Java或Python)。 我也可以为特定版本的Java构build这些基础映像,并将其推送到Artifactory。

然后,我们将有不同的项目谁将使用这些基础的图像和build设他们的Dockerfile。 我们现在想在某些方面确保在这些项目的构build过程中他们确实使用了我在Dockerfile中创build的基础镜像!

例如,如果我为Alipine上的Java创build的图像被调用

java-8-alpine-3 

那么需要Java运行时的项目应该把它作为第一行:

 FROM java-8-alipne-3 

我如何确保这种情况? 换句话说,我如何检查图像来检查这些属性的使用情况?

很好的一个特定的图像,你可以使用世纪链接图像,这将逆向工程docker图像

 docker run -v /var/run/docker.sock:/var/run/docker.sock \ centurylink/dockerfile-from-image <IMAGE_TAG_OR_ID> 

点击这里查看更多信息

不幸的是世纪链接图像使用docker树命令,这是折旧,所以另一种解决scheme是使用这个

 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nate/dockviz images -t 

它会显示你可以通过检查所有图层的所有图层。

你不能得到只有图像的FROM行。

您可以使用docker history --no-trunc image_name来获取docker history --no-trunc image_name的历史logging,但是无法获得FROM行。

看看这个线程在Docker论坛上的进一步的信息: https : //forums.docker.com/t/how-can-i-view-the-dockerfile-in-an-image/5687/3

如果您只需要知道用于构build图像的FROM xxx行,请执行此操作

docker history --no-trunc my_image

你会得到这些信息

文档

https://docs.docker.com/engine/reference/commandline/history/

编辑:

https://hub.docker.com/r/dduvnjak/dockerfile-from-image/

是一个固定的版本

https://github.com/CenturyLinkLabs/dockerfile-from-image/issues/14

不再有效

例如

$ docker run -v /var/run/docker.sock:/var/run/docker.sock dduvnjak/dockerfile-from-image k3ck3c/nethogs FROM alpine:latest RUN apk update && apk add wget&& wget --no-check-certificate -c http://github.com/raboof/nethogs/archive/v0.8.1.tar.gz && tar zvxf v0.8.1.tar.gz && cd ./nethogs-0.8.1/ && echo "export ARCH=x86" >> Makefile && apk add sudo linux-headers ncurses-dev libpcap-dev make g++&& echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && apk update && apk add libpcap libstdc++ libgcc nethogs@testing&& make && sudo make install&& apk del sudo g++ make linux-headers ncurses-dev libpcap-dev libpcap libgcc libstdc++ && rm -rf /var/cache/apk/* ./nethogs-0.8.1/

显示

FROM

行正确

要不就

$ docker run -v /var/run/docker.sock:/var/run/docker.sock dduvnjak/dockerfile-from-image k3ck3c/nethogs | grep FROM FROM alpine:latest