Чи є команда, яку я можу запустити, щоб отримати 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, використовуйте подвійні лапки "
замість одинарних '
навколо фігурних дужок.
Можна використовувати `docker inspect
Приклад:
CID=$(docker run -d -p 4321 base nc -lk 4321);
docker inspect $CID
У 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