如何查看每个docker镜像的Dockerfile?

时间:2017-04-09 17:29:21

标签: docker dockerfile

我有以下泊坞窗图片。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              48b5124b2768        2 months ago        1.84 kB
docker/whalesay     latest              6b362a9f73eb        22 months ago       247 MB

有没有办法在我的本地系统上看到每个docker镜像的Docker文件?

Where to see the Dockerfile for a docker image?的答案对我没有帮助,因为它并没有完全显示Dockerfile,而是运行创建图像的命令。我想要Dockerfile本身。

3 个答案:

答案 0 :(得分:4)

据我所知,不,你不能。因为Dockerfile用于构建图像,所以它不会与图像本身打包在一起。这意味着你应该对它进行逆向工程。您可以在图像或容器上使用docker inspect,从而获得一些洞察力并了解其配置方式。图层也是可见的,因为当你拉一个特定的图像时你拉它们,所以这也不是秘密。

但是,你可以通常在Dockerhub上看到图像本身的存储库中的Dockerfile。我不能说大多数存储库都附加了Dockerfiles,但我看到的大多数存储库都有它。

不同的存储库维护者可能会选择不同的方式来记录Dockerfiles。如果设置了自动构建,您可以在存储库页面上看到Dockerfile选项卡。但是当有多个并行版本可用时(例如Ubuntu),维护者通常会选择将Dockerfiles的链接放在描述中的不同版本中。如果你看看这里:https://hub.docker.com/_/ubuntu/,在“支持的标签”下(同样,对于Ubuntu),你可以看到每个相应的Ubuntu版本都有多个Dockerfiles的链接。

答案 1 :(得分:3)

当图像直接从Dockerhub下载时,只有图像从docker hub拉入您的机器。如果要查看dockerfile,则可以转到docker hub并以标记格式键入图像名称和版本名称(例如ubuntu:14.04),这将打开图像以及Docker文件详细信息。另外请记住,只有图像的所有者共享他们的Dockerfile,您才能看到它。否则不是。大多数官方图片都不会为您提供Dockerfile。

希望它有所帮助!

答案 2 :(得分:0)

您还可以从映像重新生成dockerfile或使用docker history命令查看其中的内容。 检查以下内容:Link to answer