Как направить трафик с хоста докера Windows на контейнеры Linux?

470
Sparkler

Официальный докер заявляет :

Docker для Windows не может направлять трафик в контейнеры Linux.

Есть ли обходной путь (за пределами докера), чтобы заставить это работать в любом случае?

Моя установка до сих пор:

docker network create --driver bridge --subnet 192.168.1.0/24 alpine-net docker run --rm --ip 192.168.1.5 -P -dit --name alpine1 --network alpine-net alpine ash 
0

1 ответ на вопрос

0
harrymc

Если вы хотите, чтобы ваш контейнер был виден снаружи, попробуйте это с помощью Elevated Power Shell, чтобы перенаправить порт на контейнер:

netsh interface portproxy add v4tov4 listenaddress=yourip listenport=yourport connectaddress=10.0.75.1 connectport=yourport 

Вы должны увидеть localhost без проблем, если ваш контейнер Linux.

Однако, если ваш контейнер - Windows, вы не увидите localhost и вам нужно использовать внутренний адрес контейнера:

docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" <cointainerid> 

Похожие вопросы