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

我怎样才能从容器中获得docker的容器名称?

我不能使用检查,因为我必须使用容器内的脚本从JSONurl获取信息。

如果您的意思是Container ID,则可以在env中使用它作为主机名variables。 它应该与大多数操作的名称互换。

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 

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

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

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

如果你有容器内的docker,
(你需要绑定-v /var/run/docker.sock:/var/run/docker.sock)
和主机名未被修改,你可以通过它:
docker inspect -f '{{.Name}}' $HOSTNAME

但是这个解决scheme只能用在边缘情况下。

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

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