我有以下泊坞窗图片。
$ 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本身。
答案 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