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

Mar*_*elo 3 containers docker

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

我不能使用inspect因为我必须使用容器内部的脚本来从JSON url获取信息.

Pin*_*lue 9

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


Ami*_*jou 8

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

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

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

ifconfig更新:仅当您安装了和dig以及其他工具时才有效。


Usm*_*ail 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
Run Code Online (Sandbox Code Playgroud)

  • 但是,这种方式在两种情况下不起作用.首先 - 如果使用`--hostname`标志显式指定主机名,则使用`--net = host`模式. (6认同)

Via*_*lev 5

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

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

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