Используйте сеть хоста

Если вы используете сетевой режим host для контейнера, сетевой стек этого контейнера не изолирован от хоста Docker (контейнер разделяет сетевое пространство имён хоста), и контейнеру не выделяется собственный IP-адрес. Например, если вы запускаете контейнер, который привязан к порту 80, и используете сеть host, приложение контейнера будет доступно через порт 80 по IP-адресу хоста.

Примечание

Учитывая, что у контейнера нет собственного IP-адреса при использовании сетевого режима host, сопоставление портов не действует, а параметры -p, --publish, -P и --publish-all игнорируются, вместо этого выдается предупреждение:

WARNING: Published ports are discarded when using host network mode

Сеть в режиме хоста может быть полезна для оптимизации производительности и в ситуациях, когда контейнеру необходимо обрабатывать большой диапазон портов, поскольку он не требует преобразования сетевых адресов (NAT) и для каждого порта не создаётся «пользовательский прокси-сервер».

Сетевой драйвер хоста работает только на хостах Linux и не поддерживается в Docker Desktop для Mac, Docker Desktop для Windows или Docker EE для Windows Server.

Вы также можете использовать сеть host для службы swarm, передав --network host в команду docker service create. В этом случае управляющий трафик (трафик, связанный с управлением swarm и службой) по-прежнему отправляется через оверлейную сеть, но отдельные контейнеры службы swarm отправляют данные, используя хост-сеть и порты демона Docker. Это создаёт некоторые дополнительные ограничения. Например, если контейнер службы привязан к порту 80, только один контейнер службы может работать на данном узле swarm.

Следующие шаги