Контейнер докера с --net = host не доступен из сети - PullRequest
0 голосов
/ 10 октября 2018

Я работаю над проектом, размещенным на Docker для Windows , используя следующую конфигурацию:
Хост ( PC1 ) Физический IP-адрес: 145.118.70.40 на LAN
Host Virtual IP: 10.0.75.1 на DockerNAT

Я получил следующую проблему :
Контейнер X ( docker run --name X -it --net = host webserver 8080 ) может получить доступ к хосту, используя доменное имя host.docker.internal ,Если X пингует это доменное имя, он получает ответ от 192.168.65.2 .Однако на хосте такой сети нет!Хост не может даже пропинговать X, используя любой из этого диапазона IP.X доступен с хоста по сети DockerNAT и, в частности, по IP: 10.0.75.2 .Кажется, есть мост или правило NAT, которое сопоставляет 192.168.65.0 с 10.0.75.0 .Используя этот мост, X может получить доступ к хосту (через 192.168.65.2 ), а хост может получить доступ к X (через 10.0.75.2 ).Пока что нет проблем.Проблема возникает, когда мы пытаемся получить доступ к X с другого физического компьютера ( PC2 ), чей IP = 145.118.70.41 в локальной сети хоста.Ссылка типа http://145.118.70.40:8080 должна работать на PC2 , но это не так.Если есть другой контейнер Y ( docker run -it -p 7000: 8080 webserver 8080 ), работающий на том же хосте ( PC1 ) вместе с X (обратите внимание, что * 1050 нет)* - net = host опция используется для Y), Y доступен из PC2 с использованием http://145.118.70.40:7000. Мой вопрос: Как сделать X также доступным из PC2 используя IP-адрес хоста (точно так же, как Y), сохраняя параметр - net = host ?

Спасибо.

1 Ответ

0 голосов
/ 16 октября 2018

Я получил ответ от поддержки Докера.Они сказали, что - net = host не полностью поддерживается Docker для Windows.

...