Ich verwende Docker zum ersten Mal und habe versucht, dies zu implementieren - https://docs.docker.com/get-started/part2/#tag-the-image
Irgendwann habe ich versucht, über diesen Befehl eine Verbindung mit localhost herzustellen -
$ curl http://localhost:4000
welches diesen Fehler zeigte-
curl: (7) Failed to connect to localhost port 4000: Connection refused
Ich habe dies jedoch durch folgenden Code gelöst:
$ docker-machine ip default
$ curl http://192.168.99.100:4000
Danach lief alles gut, aber im letzten Teil habe ich versucht, die App mithilfe der folgenden Zeile gemäß dem Tutorial auszuführen ...
$ docker run -p 4000:80 anibar/get-started:part1
Aber ich habe diesen Fehler bekommen
C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint goofy_bohr (63f5691ef18ad6d6389ef52c56198389c7a627e5fa4a79133d6bbf13953a7c98): Bind for 0.0.0.0:4000 failed: port is already allocated.
Es scheint, dass der Port zugewiesen ist. Können Sie mir bitte helfen, indem Sie mir mitteilen, wie ich das lösen kann? Vielen Dank :)
Ich habe es so gelöst:
Zuerst habe ich alle laufenden Container gestoppt:
Dann habe ich einen
lsof
Befehl ausgeführt, um den Prozess über den Port zu finden (für mich war es Port 9000).Schließlich habe ich den Prozess "beendet" (in meinem Fall war es eine VSCode-Erweiterung):
quelle
Für alle, die dieses Problem haben
docker-compose
. Wenn Sie mehr als ein Projekt (dh in verschiedenen Ordnern) mit ähnlichen Diensten haben, müssen Sie esdocker-compose stop
in jedem Ihrer anderen Projekte ausführen .quelle
Ich hatte das gleiche Problem mit Docker-Compose:
quelle
Ich habe alle oben genannten Antworten ausprobiert, keine davon hat funktioniert, in meinem Fall wird sogar
docker container ls
kein Container angezeigt. Es sieht so aus, als ob das Problem auf die Tatsache zurückzuführen ist, dass der Docker-Proxy weiterhin Ports verwendet, auch wenn keine Container ausgeführt werden. In meinem Fall habe ich Ubuntu verwendet. Folgendes habe ich versucht und das Problem gelöst. Führen Sie einfach die folgenden zwei Befehle aus:- -
sudo service docker stop
- -
sudo rm -f /var/lib/docker/network/files/local-kv.db
quelle
docker ps
zeigt die Liste der Container an, die auf Docker ausgeführt werden.Suchen Sie diejenige, die auf Ihrem benötigten Port ausgeführt wird, notieren Sie sich den PID-
Stopp und entfernen Sie diesen Container mit den folgenden Befehlen.
docker stop PID
docker rm PID
Führen Sie nun docker-compose up aus. Ihre Dienste sollten ausgeführt werden, sobald Sie den benötigten Port freigegeben haben.
quelle
Das Anhalten des Containers hat auch bei mir nicht funktioniert. Ich habe den Port geändert
docker-compose.yml
.quelle