Как я могу получить имя контейнера докера изнутри контейнера?Как получить название контейнера изнутри? docker.io
Я не могу использовать проверку, потому что мне нужно использовать скрипт из контейнера, чтобы получить информацию с URL-адреса JSON.
Как я могу получить имя контейнера докера изнутри контейнера?Как получить название контейнера изнутри? docker.io
Я не могу использовать проверку, потому что мне нужно использовать скрипт из контейнера, чтобы получить информацию с URL-адреса JSON.
Если вы имеете в виду идентификатор контейнера, он доступен в env как переменная 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
Хотя, этот способ не будет работать в двух случаях. Сначала - если имя хоста явно указано флагом '--hostname', второе - при использовании режима' --net = host'. –
Я могу работать с этим, спасибо! –
Я думаю, самый надежный способ использовать комбинацию --cidfile
и -v
вариантов.
docker run --cidfile=/tmp/container.id -v /tmp/container.id:/tmp/container.id ${IMAGE}
Если вы начнете контейнер таким образом, вы можете прочитать /tmp/container.id
изнутри вашего контейнера.
, если у вас есть докер внутри контейнера,
(вы должны связать -v /var/run/docker.sock:/var/run/docker.sock)
и имя хоста не был изменен, вы можете получить его через:
docker inspect -f '{{.Name}}' $HOSTNAME
но это решение может использоваться только в кромках.
В случае сокета-докеры у нас есть/перед именем хоста, поэтому с помощью разреза мы удалили это.
docker inspect -f '{{ .Name }}' "$HOSTNAME" | cut -c 2-
Возможный дубликат [Докер, как получить информацию из контейнера внутри контейнера?] (Http://stackoverflow.com/questions/20995351/docker-how-to-get-container-information-from- внутри контейнера) – Jason