如何从容器内部获取Docker容器的映像名称

时间:2020-08-11 15:20:22

标签: docker

我需要从该容器中获取当前正在运行的Docker容器的名称。我用来运行容器的命令是

docker exec -it 9d05bea23030 bash

我能够通过输入来检索容器的ID

cat /etc/hostname

但是我不知道如何获得图像的名称。我指的是在容器外部键入docker ps时在IMAGE下显示的名称。我需要这个特定的名称,因为它包含关键信息。

1 个答案:

答案 0 :(得分:1)

默认情况下,此类信息/元数据不会传递到容器中。有两个原因。

  1. 如果每个与容器有关的元数据都传递到了容器中,则当有人闯入容器时可能会带来安全风险
  2. 容器无论如何也不需要此类信息

之所以可以从容器内部访问容器的ID的原因仅仅是因为默认情况下它被用作容器的主机名。如果在使用container run --hostname ...运行容器时指定主机名,则也将无权访问ID。

我不知道您为什么需要此信息,但是当您进入容器内部时,获取此信息的唯一方法是首先以一种或另一种方式将其传递给容器。例如,通过环境变量。

如果您无法从容器外部访问此信息(如果您能够使用docker exec,这似乎很奇怪),那么您将不会从正在运行的容器中获取该信息。