首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查Docker镜像中的某些属性

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

Stack Overflow用户
提问于 2017-08-22 22:21:10
回答 3查看 892关注 0票数 1

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

然后我们将有不同的项目,他们将使用这些基础镜像并构造他们的Dockerfile。我们现在想以某种方式确保在这些项目的构建过程中,他们确实使用了我在他们的Dockerfile中创建的基础映像!

例如,如果我为Alipine上的Java创建的图像名为

代码语言:javascript
复制
java-8-alpine-3

然后,需要Java运行时的项目应该将以下代码作为第一行:

代码语言:javascript
复制
FROM java-8-alipne-3

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-22 22:28:45

对于特定的图像,您可以使用世纪链接图像,该图像将对docker图像进行反向工程

代码语言:javascript
复制
docker run -v /var/run/docker.sock:/var/run/docker.sock \
centurylink/dockerfile-from-image <IMAGE_TAG_OR_ID>

click here for more info

不幸的是,世纪链接图像使用docker tree命令,该命令已被贬低,因此另一种解决方案是使用此命令

代码语言:javascript
复制
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock 
nate/dockviz images -t

它将显示所有的层,你可以通过检查所有的层。

票数 1
EN

Stack Overflow用户

发布于 2017-08-22 22:43:36

您不能仅使用图像来获取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

票数 0
EN

Stack Overflow用户

发布于 2017-08-22 22:24:49

如果您只需要知道用于构建映像的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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45820249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档