Wie wird der Datenverkehr von einem Windows Docker-Host zu Linux-Containern geleitet?

459
Sparkler

Die offizielle Docker docs Zustand :

Docker für Windows kann den Datenverkehr nicht an Linux-Container weiterleiten.

Gibt es eine Problemumgehung (außerhalb des Dockers), damit dies trotzdem funktioniert?

Mein Setup ist bisher:

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 Antwort auf die Frage

0
harrymc

Wenn Ihr Container von außen sichtbar sein soll, versuchen Sie es mit Elevated Power Shell, um einen Port an den Container weiterzuleiten:

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

Sie sollten localhost ohne Probleme sehen, wenn Ihr Container Linux ist.

Wenn Ihr Container jedoch Windows ist, wird localhost nicht angezeigt, und Sie müssen die interne Adresse des Containers verwenden:

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