据我了解,我们可以从注册表中公开获取所有docker镜像。我们还可以创建自己的docker映像。假设我创建了一个docker映像,在其中定制了所需的应用程序并安装了它们的依赖项。我将图像推送到公共注册表。
我的问题是,别人怎么知道我的图像提供什么样的服务或应用程序?或者我在注册表中遇到了一些图像,但我不知道它们具有什么服务。
在这种情况下,我们可以从Dockerfile或require.txt文件中检索服务信息吗?如果可以,我在哪里可以找到其他人构建的映像的Dockerfile和require.txt?
答案 0 :(得分:0)
作为一般规则,没有办法仅从图像中找出这一点。您可以docker inspect
映像,查看其默认入口点和命令是什么,但是映像不随其Dockerfile一起提供,并且不一定具有requirements.txt
或setup.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
命令来获取创建该图像所运行的命令列表。如果您使用了多阶段构建器,它将包含少量哈希。