Контейнер Docker не раскрывает порты, когда в команде запуска docker указано --net = host

У меня есть контейнер докеров 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, но без использования, когда в команде docker run упоминается "--net = host".

Ответ 1

Версия докера - 1.10.1. Я хочу, чтобы контейнер докера имел тот же ip, что и хост с открытыми портами.

Когда вы используете --net=host, он сообщает контейнеру использовать сетевой стек хостов. Таким образом, вы не можете выставлять порты на хост, потому что есть хост (в отношении сетевого стека).

docker inspect может не показывать открытые порты, но если у вас есть приложение, прослушивающее порт, оно будет доступно, как если бы оно выполнялось на хосте.