Wie eine Verbindung zu docker host container auf Windows 10 (Docker für Windows)
Mit der IP-Adresse kann ein docker container eine Verbindung zum host auf Docker für Windows (Windows 10)? Wie finden Sie diese IP-Adresse?
Beispiel: Sie haben ein Dienst, der auf port 1234 auf Ihrem Windows 10 Maschine. Ein Programm in Ihrem Behälter müssen den Zugang zu diesem service. Welche IP-Adresse sollte das Programm eine Verbindung zu dem host?
In einigen Fällen ist es 10.0.0.2
Hallo, Ihr container ist Windows oder Linux?
Siehe dieser link um in der Lage sein, um den Zugriff auf Windows-host Linux-Container
Hallo, Ihr container ist Windows oder Linux?
Siehe dieser link um in der Lage sein, um den Zugriff auf Windows-host Linux-Container
InformationsquelleAutor RemiX | 2016-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kurze Antwort: in den meisten Fällen müssen Sie 10.0.75.1 .
In Docker für Windows, container kommuniziert über einen vEthernet adapter genannt DockerNAT. Um dessen details, öffnen Sie eine Eingabeaufforderung, und geben
Suchen Sie nach einem Eintrag, der aussieht wie
Die IP-Adresse auf der rechten
IPv4 Address
ist die, die Sie brauchen.Hinweis: stellen Sie sicher, dass der Dienst ermöglicht es, verbindungen von außerhalb Ihres host. Soweit es den service betrifft, Ihre docker-container ist eine andere Maschine. Auch stellen Sie sicher, dass die Windows-Firewall ermöglicht die Kommunikation und den service aus.
Dies hängt von der service, den Sie eine Verbindung herstellen möchten. Die meisten Dienste haben eine Konfigurations-Datei, in der können Sie eine IP - (range), die zulässig ist, um die Verbindung zu Ihrem service.
Was ist, wenn ich will, um die IP-dinamically, zum Beispiel durch den domain-Namen ( ping-host)? Ich versuche für die Bereitstellung der Anwendung in Azure (Windows Server 2016 mit Container) wich nicht 10.0.75.1.
und wenn ich mehrere Container laufen?
Ich habe versucht, zu verbinden, von meiner docker-container auf dem windows-host mit der DockerNAT ip.. Es funktioniert nicht. Wenn diese Antwort wurde vor der Arbeit, etwas in docker für windows hat sich geändert..
InformationsquelleAutor RemiX
Eine der Optionen, die es Ihnen ermöglicht eine Verbindung von container zu hosten, ist das ausführen der container mit dem parameter
--net="host"
Beispiel:
Dann aus dem Behälter, können Sie eine Verbindung zum Dienst auf host mit:
localhost:port
Aber in diesem Fall, werden Sie nicht in der Lage, mehrere Behälter mit
--link
parameter.Mehr zu diesem Thema:
http://phillbarber.blogspot.sk/2015/02/connect-docker-to-service-on-parent-host.html
UPDATE:
Ab version 18.03, verwenden Sie den DNS-Namen
host.docker.internal
, die löst auf die interne IP-Adresse vom host verwendet werden.Mehr: https://docs.docker.com/docker-for-windows/networking/
Auf älteren Versionen, können Sie eine Verbindung zu Diensten auf host-Windows mit IP-Adresse, die Sie bekommen ausführen Befehl ipconfig auf dem host -> Ethernet-adapter -> IPv4-Adresse
UPDATE
Als pro Datz Kommentar unten
docker.for.win.localhost
arbeitet in Docker für Windows (bestätigt).--net="host"
nicht aktivieren Sie das port-mapping (z.B. port 80 8000) und kann dazu führen, dass Konflikte zwischen den port-Nummern auf dem host und in den Docker-container (z.B. wenn sowohl host und container Apache läuft auf port 80).Deine Antwort funktioniert nicht für Windows-und Mac-atm.
--net="host"
funktioniert nur für Linux. Auf dem Mac können Sie den Zugriff auf host-Computer nach Namendocker.for.mac.localhost
gibt es unter Windows keine solche Bezeichnung und Sie erhalten bridge-IP-Adresse mitipconfig
Interessant; ich bin mit 18.03 auf Windows und host.Andockfenster.intern nicht zu lösen im inneren des Behälters.
Die Docker für windows-host-nun hat Sie den DNS-Namen
docker.for.win.localhost
Nice one! Bestätigt , das ist eine Arbeit!
InformationsquelleAutor tomas.zigardi