如何从里面获取容器名称? docker.io

时间:2014-11-17 18:07:54

标签: containers docker

如何从容器内获取docker的容器名称?

我无法使用inspect,因为我必须使用容器内部的脚本从JSON url获取信息。

6 个答案:

答案 0 :(得分:7)

如果您指的是env中可用的Container ID作为hostname变量。它应该与大多数操作的名称互换。

env
HOSTNAME=5252eb24b296
TERM=xterm
....

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
5252eb24b296        ubuntu:14.04        "bash"              23 seconds ago      Up 22 seconds                           test

答案 1 :(得分:4)

我认为,使用--cidfile-v选项组合的最可靠方式。

docker run --cidfile=/tmp/container.id -v /tmp/container.id:/tmp/container.id ${IMAGE}

如果您以这种方式启动容器,则可以从容器内部阅读/tmp/container.id

答案 2 :(得分:3)

如果您在容器内有泊坞者,则 (你需要绑定-v /var/run/docker.sock:/var/run/docker.sock)
并且主机名未被修改,您可以通过以下方式获得: docker inspect -f '{{.Name}}' $HOSTNAME

但此解决方案只能用于边缘情况。

答案 3 :(得分:2)

在docker-compose的情况下,我们在主机名前面有一个/所以使用cut我们删除了它。

docker inspect -f '{{ .Name }}' "$HOSTNAME" | cut -c 2-

答案 4 :(得分:1)

如果您想要容器名称而不是容器ID,则可以在容器的eth0上进行反向DNS查找。

dig -x `ifconfig eth0 | grep 'inet' | awk '{print $2}'` +short | cut -d'.' -f1

这为您提供了友好的名称,而不是ID。

答案 5 :(得分:0)

您可以使用cut -c9- < /proc/1/cpuset

相关问题