2017-04-09 785 views
0

我有以下码头图像。如何查看每个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 

有没有一种方法,我可以看到我的本地系统上的每个泊坞窗图像的Dockerfile?

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

回答

3

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

但是,您可以通过通常查看Dockerhub上图像本身的存储库中的Dockerfile。我不能说大部分版本库都附有Docker文件,但我看到的大多数版本库都有它。

不同的版本库维护者可能会选择不同的方式来记录Dockerfiles。如果自动构建已设置,您可以在资源库页面上看到Dockerfile选项卡。但是,当多个并行版本可用时(比如Ubuntu),维护人员通常会选择在说明中为不同版本的Dockerfiles链接。如果您在这里查看:https://hub.docker.com/_/ubuntu/,在“支持的标签”下(对于Ubuntu),您可以看到每个相应的Ubuntu版本都有指向多个Docker文件的链接。

3

由于图像是直接从Dockerhub下载的,因此只有图像被从码头集线器拖入您的机器。如果您想查看dockerfile,那么您可以转到docker hub并以标记格式(例如ubuntu:14.04)输入图像名称和版本名称,这将打开图像以及Docker文件详细信息。另外请记住,只有在图像所有者共享Dockerfile时,才能看到它。否则不是。大多数官方图片不会为您提供Dockerfile。

希望它有帮助!

+0

如果我去https://hub.docker.com/search/?q=ubuntu%3A14.04我看不到官方的ubuntu:14.04图像。相反,我看到由其他用户创建的Ubuntu 14.04图像。我如何搜索官方的ubuntu:14.04图像? –

+0

这对于不同的回购有点不同。如果构建版本,您可以在存储库中看到Dockerfile选项卡。但是,当多个并行版本可用时,维护人员通常会选择在自述文件中列出Dockerfiles以获取不同的版本。如果您在这里查看:https://hub.docker.com/_/ubuntu/,在“支持的标签”下,您可以看到每个相应的Ubuntu版本都有指向多个Dockerifiles的链接。编辑:我会添加到我的答案。 –

+0

Hi @LoneLearner ...这是官方的ubuntu repo包含Ubuntu发布的所有版本。 https://hub.docker.com/_/ubuntu/可以在以下位置找到Dockerfile:https://github.com/tianon/docker-brew-ubuntu-core/blob/1a5cb40f41ac4829d8c301ccd2cf3b7a13687a8b/trusty/Dockerfile正如您所见在官方的ubuntu页面中,Docker文件与github相似 –