it-swarm.com.de

Herstellen einer Verbindung zum Docker-Host über einen Container unter Windows 10 (Docker für Windows)

Unter welcher IP-Adresse kann ein Docker-Container eine Verbindung zu seinem Host on Docker for Windows (unter Windows 10) herstellen? Wie finden Sie diese IP-Adresse?

Beispiel: Auf Ihrem Windows 10-Computer wird auf Port 1234 ein Dienst ausgeführt. Ein Programm in Ihrem Container muss auf diesen Dienst zugreifen. Welche IP-Adresse sollte das Programm verwenden, um eine Verbindung zum Host herzustellen?

39
RemiX

Kurze Antwort: In den meisten Fällen benötigen Sie 10.0.75.1.

In Docker für Windows kommuniziert der Container über einen vEthernet-Adapter namens DockerNAT. Um die Details zu finden, öffnen Sie die Eingabeaufforderung und geben Sie Folgendes ein

ipconfig

Suchen Sie nach einem Eintrag, der aussieht

Ethernet adapter vEthernet (DockerNAT):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::fd29:297:4583:3ad4%4
   IPv4 Address. . . . . . . . . . . : 10.0.75.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Die IP-Adresse rechts von IPv4 Address ist das, was Sie brauchen.

Hinweis: Stellen Sie sicher, dass der Dienst Verbindungen von außerhalb Ihres Hosts zulässt. In Bezug auf diesen Dienst handelt es sich bei Ihrem Docker-Container um eine andere Maschine. Stellen Sie außerdem sicher, dass die Windows-Firewall die Kommunikation zum und vom Dienst zulässt.

63
RemiX

Eine der Optionen, mit denen Sie eine Verbindung vom Container zum Host herstellen können, besteht darin, den Container mit dem Parameter auszuführen

--net="Host"

Beispiel:

docker run -it --net="Host" container_name

Anschließend können Sie vom Container aus eine Verbindung zum Dienst auf dem Host herstellen, indem Sie Folgendes verwenden:

localhost:port

In diesem Fall können Sie jedoch keine weiteren Container mit dem Parameter --link Verknüpfen.

Mehr zu diesem Thema: http://phillbarber.blogspot.sk/2015/02/connect-docker-to-service-on-parent-Host.html

[~ # ~] Update [~ # ~] :

Ab Version 18.03 können Sie den DNS-Namen Host.docker.internal Verwenden, der in die vom Host verwendete interne IP-Adresse aufgelöst wird.

Mehr: https://docs.docker.com/docker-for-windows/networking/

In älteren Versionen können Sie mit der IP-Adresse, die Sie beim Ausführen des Befehls ipconfig auf Host -> Ethernet-Adapter -> IPv4-Adresse erhalten, eine Verbindung zu einem auf Host Windows ausgeführten Dienst herstellen

[~ # ~] Update [~ # ~] Laut Datz-Kommentar funktioniert docker.for.win.localhost in Docker für Windows (bestätigt) .

22
tomas.zigardi