wake-up-neo.com

docker: Treiber konnte bei der Programmierung externer Konnektivität auf dem Endpoint-Webserver nicht starten

Ich bin auf dem Mac. Ausführen eines Docker-Beispiels Gehen Sie folgendermaßen vor: https://docs.docker.com/docker-for-mac/

docker run -d -p 80:80 --name webserver nginx

Aber ich bekomme diesen Fehler: 

docker: Error response from daemon: driver failed programming external connectivity on endpoint webserver (bd57efb73c738e3b271db180ffbee0a56cae86c8193242fbc02ea805101df21e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).

Brauche Hilfe.

26
Jason Bourne

Die EADDRINUSE gibt an, dass der Port 80 bereits im Docker VM oder möglicherweise direkt auf Ihrem Laptop verwendet wird. Sie können entweder anhalten, was an diesem Port ausgeführt wird, oder den in Ihrem Docker-Befehl verwendeten Port ändern. Um auf den externen Port 8080 zu wechseln, verwenden Sie:

docker run -d -p 8080:80 --name webserver nginx
36
BMitch

Versuchen Sie, das Docker neu zu starten. Das funktioniert normalerweise für mich.

12
anotherNoob

In letzter Zeit trat dieses Problem unter Windows häufig auf. Sie können versuchen, das Docker neu zu starten, oder Sie können das Docker manuell stoppen, bevor Windows heruntergefahren wird. Das Docker wird beim Neustart sauber gestartet. Am 24.07.2014 ist die Ausgabe des Dockers offen. Weitere Informationen finden Sie unter https://github.com/docker/for-win/issues/1967

4
webuniverse.io

Ich hatte das gleiche Problem mit einem meiner Container. Ich habe alles ausprobiert, aber als nichts funktionierte, habe ich Folgendes versucht und den Behälter mit Erfolg erneut gestartet

 - Sudo service docker stop
 - Sudo rm /var/lib/docker/network/files/local-kv.db
 - Sudo service docker start
3
smishra

windows-Benutzer: Docker-Beschreibung

Auf Windows-Systemen stoppt STRG + C den Container nicht. Geben Sie also zuerst STRG + C, um die Eingabeaufforderung zurückzuholen (oder eine andere Shell zu öffnen), und geben Sie .__ ein. Docker-Container ls, um die laufenden Container aufzulisten, gefolgt von Docker Behälterstopp zum Stoppen des Behälters . Andernfalls erhalten Sie vom Daemon eine Fehlerantwort, wenn Sie versuchen, Führen Sie den Container im nächsten Schritt erneut aus.

Ich hatte das gleiche Problem, dachte ich mit STRG + C stoppte den Container, aber es war nicht der Fall. Jede der obigen Antworten funktioniert, weil sie alle Container stoppen, das Docker neu starten oder die Container-Explicity stoppen.

Ich bevorzuge:

docker container ls #list containers running
docker stop [container id] #replace [container id] with the container id running
0

Dies scheint ein Inkompatibilitätsproblem mit dem "Fast-Boot" von Windows zu sein, wie hier beschrieben: (Starten Sie einfach den Andockdienst neu) und es funktioniert möglicherweise.

https://github.com/docker/for-win/issues/2722

Dies ist auf eine Inkompatibilität mit Docker und Fastboot zurückzuführen. Sie können entweder sicherstellen, dass Sie alle Container stoppen, bevor Sie Windows herunterfahren, oder Sie können den Schnellstart in den Energieeinstellungen von Windows deaktivieren, indem Sie folgende Schritte ausführen:

CTRL+R > "powercfg.cpl" > "Choose what the power buttons do" > "Change settings that are currently unavailable" > Deselect "Turn on fast start-up"

Sie können Fastboot auch mit einem einzigen Befehl in Powershell deaktivieren, wenn Sie mit dem Befehl zufrieden sind:

Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power\' -Name HiberbootEnabled -Value 0

0
atom88

Stoppen Sie alle laufenden Container docker ps -a -q dann Stoppen Sie den Docker auf Ihrem Computer und starten Sie ihn neu.

0
Som