如何查看 DockerHub 容器的源代码以便对其进行调整?

How to see the source of a DockerHub container so I can adapt it?

我想开发一个其他人也可以轻松使用的 GeoDjango 应用程序。我想使用 Docker 来打包应用程序。

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

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

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

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

您可以尝试联系镜像维护者。

有时候 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 以检查每一层的完整命令。我不会在这里放一个例子,因为它太冗长了,但你肯定会得到更多的信息。