Как перенаправить трафик с хоста докера Windows на контейнеры Linux?
Официальный докер заявляет:
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
1 ответ
Если вы хотите, чтобы ваш контейнер был виден снаружи, попробуйте это с помощью 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>