我的组织中有一组Docker基础映像。我有一个技术堆栈(例如Java或Python)。我还可以为特定版本的Java构建这些基本映像,并将其推送到神器中。
然后我们将有不同的项目,他们将使用这些基础图像并构建他们的Dockerfile。我们现在想以某种方式确保在这些项目的构建过程中确实使用了我在Dockerfile中创建的基本映像!
例如,如果我在Alipine上为Java创建的图像被称为
java-8-alpine-3
然后需要Java运行时的项目应将此作为第一行:
FROM java-8-alipne-3
我如何确保这种情况?换句话说,我如何检查图像以检查这些属性的使用情况?
答案 0 :(得分:1)
对于特定图像,您可以使用世纪链接图像来反向设计泊坞窗图像
docker run -v /var/run/docker.sock:/var/run/docker.sock \
centurylink/dockerfile-from-image <IMAGE_TAG_OR_ID>
遗憾的是,世纪链接图像使用了对折旧的docker tree命令,因此其他解决方案是使用此
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock
nate/dockviz images -t
它将显示您可以检查所有图层的所有图层。
答案 1 :(得分:0)
你不能只获得FROM
行。
您可以使用docker history --no-trunc image_name
获取图片的历史记录,但无法获得FROM
行。
在Docker论坛上查看此主题以获取更多信息:https://forums.docker.com/t/how-can-i-view-the-dockerfile-in-an-image/5687/3
答案 2 :(得分:-1)
如果您只需要知道用于构建图片的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