Docker,如何知道某个docker镜像有哪些服务?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker,如何知道某个docker镜像有哪些服务?相关的知识,希望对你有一定的参考价值。

据我了解,我们可以从注册表中公开提供任何docker镜像。我们还可以创建自己的docker镜像。假设我创建了一个docker镜像,我自定义了我想要的应用程序并安装了它们的依赖项。我将图像推送到公共注册表。

我的问题是,有人会怎么知道我的图片有哪些服务或应用程序?或者我在注册表中看到了一些图像,但我不知道他们有什么服务。

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

答案

作为一般规则,没有办法仅从图像中找到它。你可以docker inspect图像,看看它的默认入口点和命令是什么,但图像不附带其Dockerfile,并不一定有requirements.txtsetup.pyGemfilepackage.json。如果您正在使用像Go这样的编译语言,那么可以构建一个仅包含应用程序的Docker镜像,而不是像shell那样只运行它的绝对必要的其他细节。

通常有人会有一些指向图像的其他指针,这些指针将包含更多细节。例如,如果图像的源位于GitHub上,那么GitHub项目的README.md文件或其wiki通常会有更多关于图像的详细信息,通常Dockerfile位于项目根目录中。您可以在username/imagename上的Docker Hub(只有https://hub.docker.com/格式,没有注册表前缀)上查找图像。但是你需要某种关于图像的带外数据。

另一答案

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

以上是关于Docker,如何知道某个docker镜像有哪些服务?的主要内容,如果未能解决你的问题,请参考以下文章

在docker私有仓库如何查看有哪些镜像?

Docker镜像操作常用指令都有哪些?

docker入门

docker存储驱动

详解Docker——你需要知道的Docker进阶知识二

Docker 镜像加速器(如何加速下载)