Ich benutze Docker für Mac. Ich führe einen NodeJS-basierten Microservice in einem Docker-Container aus. Ich möchte den Node Microservice über den Browser testen. Wie erhalte ich die IP-Adresse des laufenden Docker-Containers?
docker
containers
docker-for-mac
user3067875
quelle
quelle
Antworten:
Wenn Sie dem Container keine Ports von Ihrem Host zuordnen möchten, können Sie direkt auf die Docker-Bereichs-IP für den Container zugreifen. Auf diesen Bereich wird standardmäßig nur von Ihrem Host aus zugegriffen. Sie können Ihre Containernetzwerkdaten folgendermaßen überprüfen:
Wahrscheinlich ist es besser zu filtern:
Normalerweise ist der Standard-IP-Bereich für Docker
172.17.0.0/16
. Ihr Host sollte sein172.17.0.1
und Ihr erster Container sollte sein,172.17.0.2
wenn alles normal ist und Sie keine speziellen Netzwerkoptionen angegeben haben.BEARBEITEN Eine andere elegantere Möglichkeit, Docker-Funktionen anstelle von "Bash-Tricks" zu verwenden:
quelle
localhost
:)http://172.17.0.2:anyPort
vom Host aus erfolgen. Wenn Sie mit localhost auf dem Host darauf zugreifen möchten, müssen Sie natürlich die Ports zuordnen. Mal sehen, was das OP will.docker run --name struts --rm -i tomcat
2. Rufen Sie die IP Ihres Containers ab (falls Sie nur eine haben):docker inspect struts | grep '"IPAddress"' | head -n 1
3. Öffnen Sie sie im Browser des Hostshttp://x.x.x.x:8080
. Sie können die Seite mit den Apache Tomcat-Standards sehen.Verwenden Sie die
--format
Option, um nur die IP-Adresse anstelle der gesamten Containerinformationen abzurufen:quelle
Verwenden Sie für moderne Docker-Engines diesen Befehl:
und für ältere Motoren verwenden:
quelle
Wenn Sie es direkt im Container erhalten möchten, können Sie es versuchen
quelle
Sie können Ihren Container mit der Flagge starten
-P
. Dies "weist" dem belichteten Port Ihres Bildes einen zufälligen Port zu.Mit
docker port <container id>
können Sie den zufällig ausgewählten Port sehen. Der Zugang ist dann über möglichlocalhost:port
.quelle
Für meinen Fall funktionierte unten auf dem Mac :
Ich konnte nicht direkt auf dem Mac auf Container-IPs zugreifen. Ich muss
localhost
mit Portweiterleitung verwenden, zB wenn der Port 8000 ist, dannhttp://localhost:8000
Siehe https://docs.docker.com/docker-for-mac/networking/#known-limitations-use-cases-and-workarounds
Die ursprüngliche Antwort lautete: https://github.com/docker/for-mac/issues/2670#issuecomment-371249949
quelle
Sie können nicht von außerhalb dieses Host-Computers auf die IP des Dockers zugreifen. Wenn sich Ihr Browser auf einem anderen Computer befindet, sollten Sie den Host-Port besser dem Container-Port zuordnen
-p 8080:8080
, indem Sie den Befehl run ausführen.Beim Übergeben können
-p
Sie den Host-Port dem Container-Port zuordnen, und ein Proxy ist so eingestellt, dass der gesamte Datenverkehr für diesen Host-Port an den angegebenen Container-Port weitergeleitet wird.quelle