Docker,如何知道某个Docker映像提供的服务?

时间:2018-07-02 23:47:35

标签: image docker

据我了解,我们可以从注册表中公开获取所有docker镜像。我们还可以创建自己的docker映像。假设我创建了一个docker映像,在其中定制了所需的应用程序并安装了它们的依赖项。我将图像推送到公共注册表。

我的问题是,别人怎么知道我的图像提供什么样的服务或应用程序?或者我在注册表中遇到了一些图像,但我不知道它们具有什么服务。

在这种情况下,我们可以从Dockerfile或require.txt文件中检索服务信息吗?如果可以,我在哪里可以找到其他人构建的映像的Dockerfile和require.txt?

2 个答案:

答案 0 :(得分:0)

作为一般规则,没有办法仅从图像中找出这一点。您可以docker inspect映像,查看其默认入口点和命令是什么,但是映像不随其Dockerfile一起提供,并且不一定具有requirements.txtsetup.py或{{ 1}}或Gemfile。如果您使用的是Go之类的编译语言,则可以构建仅包含应用程序 的Docker映像,而不包含仅运行该程序并非必需的其他精美内容,例如shell。 / p>

通常有人会指向该图像的其他指针具有更多细节。例如,如果图像的源位于GitHub上,则GitHub项目的package.json文件或其Wiki通常会包含有关该图像的更多详细信息,并且通常README.md位于项目的根目录中。您可以在https://hub.docker.com/上的Docker Hub上查找图像(格式仅为Dockerfile,没有注册表前缀)。但是,您需要像这样的有关图像的带外数据。

答案 1 :(得分:0)

我们可以使用docker history命令来获取创建该图像所运行的命令列表。如果您使用了多阶段构建器,它将包含少量哈希。