Як отримати IP-адресу Docker-контейнера від хостера?

Чи є команда, яку я можу запустити, щоб отримати IP-адресу контейнера безпосередньо з хоста після створення нового контейнера?

В основному, як тільки Docker створить контейнер, я хочу запустити свій власний скрипт розгортання коду і конфігурації контейнера.

Рішення

На допомогу приходить "форматний" варіант інспекції.

Сучасний синтаксис клієнта Docker:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

Старий синтаксис клієнта Docker:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id

Який поверне тільки IP-адресу.

Як згадувалося в коментарях: якщо ви перебуваєте на Windows, використовуйте подвійні лапки " замість одинарних ' навколо фігурних дужок.

Коментарі (17)

Можна використовувати `docker inspect ``

Приклад:

CID=$(docker run -d -p 4321 base nc -lk 4321);
docker inspect $CID
Коментарі (7)

У Docker 1.3+ ви також можете перевірити це, виконавши наведені нижче дії:

Увійдіть у запущений Docker (Linux):

docker exec [container-id or container-name] cat /etc/hosts
172.17.0.26 d8bc98fa4088
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.17 mysql

Для Windows:

docker exec [container-id or container-name] ipconfig
Коментарі (3)