У меня есть док-контейнер CentOS на узле докера CentOS. Когда я использую эту команду для запуска образа докера docker run -d --net=host -p 8777:8777 ceilometer:1.x
, контейнер докера получает IP-адрес хоста, но ему не назначены порты.
Если я запускаю ту же команду без "--net=host" docker run -d -p 8777:8777 ceilometer:1.x
, docker предоставляет порты, но с другим IP-адресом. Версия докера 1.10.1. Я хочу, чтобы контейнер докеров имел тот же IP-адрес, что и хост с открытыми портами. Я также упомянул в Dockerfile
инструкцию EXPOSE 8777
, но бесполезно, когда "--net=host" упоминается в команде docker run
.
--net=host
разделяет интерфейс хоста с контейнером. Следовательно, если вы не запустите службу, которая прослушивает какой-либо порт, порт не будет опубликован, так как в этом нет необходимости. Флаг-p
бесполезен, если интерфейс хоста является общим, потому что все необходимые порты будут напрямую опубликованы на интерфейсе хоста. Другими словами: пространство портов между хостом и контейнерами совместно используется при использовании--net=host
. - person Auzias   schedule 24.02.2016