有以下 docker 镜像:
$ 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 映像的 Dockerfile?
这篇文章 Where to see the Dockerfile for a docker image? 对我没有帮助,因为它没有完整显示 Dockerfile,而是运行命令来创建镜像。我想要 Dockerfile 本身。
原文由 Lone Learner 发布,翻译遵循 CC BY-SA 4.0 许可协议
据我所知,不能。
因为 Dockerfile 用于构建镜像,所以它不与镜像本身打包。这意味着您应该对其进行逆向工程。您可以在镜像或容器上使用
docker inspect
,从而了解它的配置方式。镜像的 layers 也是可见的,因为当你拉特定的镜像时才拉它们,所以这也不是什么秘密。但是,您 通常 可以在 Dockerhub 上的镜像本身的存储库中看到 Dockerfile。我不能说大多数存储库都附加了 Dockerfile,但我看到的大多数存储库都有它。
不同的存储库维护者可能会选择不同的方式来记录 Dockerfile。如果设置了自动构建,您可以在存储库页面上看到 Dockerfile 选项卡。但是当有多个并行版本可用时(比如 Ubuntu ),维护者通常会选择将不同版本的 Dockerfile 链接放在描述中。如果您在这里查看: https://hub.docker.com/_/ubuntu/,在“支持的标签”下(同样,对于 Ubuntu),您可以看到每个 Ubuntu 版本都有多个 Dockerfile 的链接.