如何检查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
- Docker for mac主机名称IP
- 如何同时运行两个或多个docker-compose文件
- Docker,JBoss部署因java.net.ConnectException失败:JBAS012144:无法连接到http-remoting://127.0.0.1:9990。 连接超时
- fabric8 docker-maven-plugin:在build上包含额外的标签
- 数据存储在尝试从泊坞窗容器访问时返回503
- 添加 – 安全registry时启动docker错误
- Kubernetes:如何设置VolumeMount用户组和文件权限
- 尝试使用Docker容器运行Kong API Gateway时连接被拒绝
- 如何为sbt本地包装器的DockerPlugin设置基本映像?