Intereting Posts
Информация хоста и кластера докеров Приложение-контейнер Docker не может подключиться к SQL Server в хосте Docker пример развертывания изображения докеров на кубернетах из java Почему другие несвязанные процессы убиваются, когда один процесс убит в контейнере докера Как читать переменную окружения в Nodejs? Проблема с сценарием сценария Jenkins и докерем maven image Как обрабатывать код проекта PHP в контейнере докеров Можно ли запустить сеанс оболочки в запущенном контейнере (без ssh) docker-compose build error при использовании родительского dir и dockerfile для сборки NginX как HTTPS обратный прокси для нескольких поддоменов? Spring config config server: подключение ssh к приватной конфигурации repo Получено разрешение на отказ при попытке подключения к сокету Docker daemon при выполнении остановки докера Является ли хорошей практикой иметь мои сайты cert.key и cert.pem в контейнере Dginx Nginx? systemtap: при разрешении точки зонда: идентификатор «процесс» в источнике: пробный процесс (). function no match Ошибка докера: состояние выхода 255

Как получить IP-адрес запущенного контейнера докеров

Я использую Docker для Mac, я запускаю микросервис на основе nodejs в контейнере докера. Я хочу проверить микросервис узла узла через браузер. Как получить IP-адрес работающего контейнера докеров?

Если вы не хотите сопоставлять порты с вашего хоста в контейнере, вы можете получить доступ непосредственно к диапазону ip докеров для контейнера. Этот диапазон по умолчанию доступен только с вашего хоста. Вы можете проверить данные своей сети:

docker inspect <containerNameOrId> 

Наверное, лучше фильтровать:

 docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1 

Обычно, диапазон 172.17.0.0/16 станции по умолчанию – 172.17.0.0/16 . Ваш хост должен быть 172.17.0.1 и ваш первый контейнер должен быть 172.17.0.2 если все нормально, и вы не указали какие-либо специальные сетевые параметры.

EDIT Еще один элегантный способ использования функций докеры вместо «bash tricking»:

 docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId> 

Вы можете запустить свой контейнер с помощью флага -P . Это «назначает» случайный порт для открытого порта вашего изображения.

С docker port <container id> вы можете увидеть случайно выбранный порт. Тогда доступ возможен через localhost:port .

IP будет localhost (поскольку мы имеем дело с вашим компьютером, но если вы хотите, вы также можете ввести 127.0.0.1) и port который вы установили в контейнере. Например, если вы запустите Docker с опцией порта, например this -p 3003:3000

Затем это означает, что NodeJS должен прослушивать порт 3000, а открытый порт – 3003 . Выставляется на ваш локальный компьютер.

Таким образом, вы можете ввести браузер:

если вы хотите получить его прямо в контейнере, вы можете попробовать

 ip a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep 172.17