如何查看DockerHub容器的来源以便我可以调整它?

时间:2015-02-25 17:33:31

标签: docker dockerhub

我想开发一个GeoDjango应用程序,这个应用程序也很容易让其他人也可以使用。我想使用Docker打包应用程序。

所以,一个非常简单的问题。

我可以看到DockerHub上有一个现有的GeoDjango容器:https://registry.hub.docker.com/u/jhonatasmartins/geodjango/

如何查看此容器的Dockerfile,以便我可以将其用作自己容器的基础?

2 个答案:

答案 0 :(得分:2)

除非作者已在某处发布了Dockerfile,否则(目前)无法看到用于生成图像的Dockerfile。构建为自动构建的图像将具有指向具有Dockerfile的源存储库的链接,但对于手动构建和推送的图像,您仅限于在描述中发布的任何人。

您可以尝试联系图片维护者。

答案 1 :(得分:2)

有时候,docker history <IMAGE_ID>可以向您展示有关图像构建方式的一些提示。实际上,如果图像是使用Dockerfile构建的,那么将为您提供Dockerfile步骤的清晰图像。对于从容器中提交的容器,您可能看不到某些步骤,但有时您可以从那里获得一些想法。例如,你说的图像是:

$ docker history jhonatasmartins/geodjango:latest
IMAGE               CREATED             CREATED BY                                      SIZE
0b7e890a4644        3 months ago        /bin/bash                                       112.2 MB
35174145916a        3 months ago        /bin/bash                                       449.9 MB
5506de2b643b        4 months ago        /bin/sh -c #(nop) CMD [/bin/bash]               0 B
22093c35d77b        4 months ago        /bin/sh -c apt-get update && apt-get dist-upg   6.558 MB
3680052c0f5c        4 months ago        /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/   1.895 kB
e791be0477f2        4 months ago        /bin/sh -c rm -rf /var/lib/apt/lists/*          0 B
ccb62158e970        4 months ago        /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic   194.8 kB
d497ad3926c8        4 months ago        /bin/sh -c #(nop) ADD file:3996e886f2aa934dda   192.5 MB
511136ea3c5a        20 months ago                                                       0 B

Edit1:正如jwodder在下面建议的那样,将--no-trunc选项添加到docker inspect以检查每个图层的完整命令。我不会把这个放在这里作为例子,因为它太冗长了,但绝对会得到更多使用它的信息。