Ich verwende Docker Toolbox, weil ich kein Hyper-V auf meinem Computer habe, da es nicht Windows 10 Pro ist. Alles scheint gut zu funktionieren, aber wenn ich versuche, meinen Browser 0.0.0.0:80
aufzurufen, wird mir immer Folgendes zurückgegeben: Diese Site kann nicht erreicht werden
Aber wenn ich den Befehl ausführe: docker container ps
Ich erhalte Folgendes: Das 0.0.0.0:80->80/tcp
bedeutet, dass diese Adresse funktionieren sollte. Ich habe nach Stackoverflow- und Github-Problemen gesucht. Jetzt stecke ich fest.
Vermisse ich etwas
Danke, Mark
BEARBEITEN:
Mit docker-machine ip default
gibt mich zurück 192.168.99.100
. Ich führe das auf Port 80 aus. Ich erhalte immer noch das gleiche Ergebnis, außer dass die Adresse zur Container-ID wird:https://fd677edg12
Ich führe diesen Befehl auf cmd aus, um mein ipv4 zu finden : cmd /k ipconfig /all
. Setzen Sie das Ergebnis mit dem Port und es gibt dasselbe zurück:https://fd677edg12
quelle
docker-machine default ip -> 192.168.99.100
Also habe ich dies in die Adresse eingetragen:192.168.99.100:80
Ich bekomme immer noch das gleiche Ergebnis.Antworten:
Die Docker Toolbox bietet nicht so viele Annehmlichkeiten wie Docker für Windows, aber Sie verwenden sie korrekt, da Sie die Home Edition verwenden.
In der Toolbox wird
localhost
und wird192.168.99.100
standardmäßig nichts angezeigt, da in VirtualBox eine Linux-VM ausgeführt wird.Also wenn du rennst
docker run -p 80:80 nginx
(Beachten Sie, dass ich einen Port veröffentlichen musste, um diesen Port
192.168.99.100
abzuhören.)Dann
http://192.168.99.100
sollte es funktionieren.quelle
docker run -p 80:80 -d nginx
. Ich gehe zur Adresse und sie leitet mich weiterhttps://dev/
. Wieder heißt es, dass die Site nicht erreichbar ist. Ich wollte auch überprüfen, ob ich etwas in derhosts
Datei habe (obwohl ich weiß, dass es kein localhost ist). Ich habe dort alles kommentiert.docker-machine
cli dreht. Mit können Siedocker-machine --help
sehen, was Sie tun können, um die VirtualBox-VM zu verwalten (oder weitere zu erstellen).Ich hatte anfangs einige Probleme beim Zugriff auf meine Anwendungen bei localhost: 8080, während ich DockerToolBox und OracleVM VirtualBox verwendete.
In VirtualBox:
8080
& Gast-Port einstellen8080
; Stellen Sie sicher, dass Host-IP und Gast-IP leer sindFühren Sie den folgenden Befehl aus:
quelle
C:\Windows\System32\drivers\etc\hosts
) - ich musste beide überprüfen, bevor es für mich funktionierte ;-)Ich folgte dem Docker für Windows-Tutorial in https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell und blieb in Schritt 6 stecken, als ich nginx im Webbrowser testete . Anscheinend hatte ich ein ähnliches Problem, da ich auch Windows Home verwende und kein Hyper-V habe. Meine Problemumgehung ist ganz einfach:
Wechseln Sie zu Oracle Virtual Machine, um die Portweiterleitung festzulegen. Stellen Sie sicher, dass die Netzwerkeinstellung NAT ist, und fügen Sie die Portweiterleitung hinzu. Host IP: 127.0.0.1, Gast IP: 192.168.99.100, Port alle auf 80 wie folgt
Versuchen Sie es erneut mit Ihrem Browser und führen Sie http: // localhost oder http://127.0.0.1 aus (kann auch den Port 80 hinzufügen). Es sollte laufen.
Die Sache ist, dass die Nginx-IP innerhalb der Docker Virtual Machine zugänglich sein soll, so dass wir diese Port-Forwading-Einstellung benötigen, um direkt im Browser des Host-Rechners darauf zugreifen zu können
quelle
HOST:CONTAINER
Ports unterschiedlich sind, zdocker run --detach --publish 8081:80 --name webserver nginx
. Es wurde festgestellt, dass ich in diesem Fall nur denHOST
Port weiterleiten musste , dh in den VirtualBox-EinstellungenHost IP=127.0.0.1
.Host Port=8081
;;Guest IP=192.168.99.100
;;Guest Port=8081
, nicht80
wie ich vorher angenommen habe. Sieht aus wie auf meinem Windows 7-Computer mit Docker Toolbox. Docker leitet vom Container-Port80
an192.168.99:8081
und ich leite von192.168.99:8081
an weiter,localhost:8081
da192.168.99:8081
im Webbrowser nichts angezeigt wird.Sie können
localhost
anstelle von '192.168.99.100' die folgenden Anweisungen befolgen:Schritt # 01:
Sie sehen die Standard-IP
Schritt # 02:
Schritt # 03:
VirtualBox Manager
)i.e, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80
Schritt 04: Jetzt können Sie Ihre Docker-Maschine starten, indem Sie Folgendes ausführen:
Starten Sie dann einfach Ihren Docker-Container und Sie können über localhost darauf zugreifen.
Schauen Sie hier für Details.
quelle
localhost
Sie können die VirtualBox-CLI verwenden, um die erwarteten Ports zuzuordnen, anstatt die Docker-Computer-IP direkt zu treffen.Wenn die Docker-Machine-VM (hier genannt
default
) ausgeführt wird, fügen Sie folgende Regeln hinzu und löschen Sie sie:Wenn die VM nicht ausgeführt wird oder Sie vor dem Ändern anhalten möchten:
Wo das Format der Portweiterleitungsregel ist
[<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>
.Beachten Sie, dass Sie in VirtualBox dem Host- Port von Docker Map zuordnen möchten , nicht dem internen Container-Port. Sie ordnen Host -> VM zu, dann ordnet Docker VM -> Container zu.
Siehe die VirtualBox-Dokumente .
quelle
Dies ist eine weitere einfache Möglichkeit, die Eingabe der IP-Adresse 192.168.99.100 zu vermeiden. Gehen Sie zu
C:\Windows\System32\drivers\etc\hosts
und fügen Sie am Ende der Datei hinzu:192.168.99.100 docker.awesome
oder einen beliebigen Namen nach Ihren Wünschen.Speichern Sie die Datei (Sie müssen über Administratorrechte verfügen. Klicken Sie daher mit der rechten Maustaste auf die Datei und führen Sie sie als Administrator aus, um sie beim Bearbeiten speichern zu können.)
Gehen Sie zu Ihrem gewählten Domainnamen, docker.awesome: 8080 in diesem Fall und dort haben Sie es.
quelle
Nach vielen Versuchen konnte ich dieses Bulletin Board bekommen.
Der Docker-Run-Befehl, den ich verwendet habe - Docker-Run -p 4680: 8080 - Name BB Bulletin Board: 1.0 Hier ist 4680 die Localhost-Portnummer. 8080 ist die Container-Portnummer, der Port, an dem der Container empfangsbereit ist. Diese Portnummer wird im Befehl EXPOSE in der Docker-Datei angegeben.
Gehen Sie dann zum Webbrowser und geben Sie 192.168.99.100:4680 ein
Hier ist 192.168.99.100 die IP-Adresse des Docker-Computers (Befehl verwenden -> IP des Docker-Computers)
Hoffe das hilft euch allen !!
quelle