Ich versuche, es $ docker-compose up -d
für ein Projekt zu verwenden, und erhalte die folgende Fehlermeldung:
FEHLER: für API Die Dienst-API kann nicht gestartet werden: Treiber konnte die externe Konnektivität auf Endpunktdatenexploration_api_1 nicht programmieren (8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117) Beim Aufrufen des Projekts sind Fehler aufgetreten.
Ich frage mich, ob es vielleicht der Hafen ist? Ich hatte zuvor Port 8080 ausprobiert. Das Projekt wurde ursprünglich auf einem Mac eingerichtet und ich habe das Repository von gitHub geklont.
windows
github
windows-10
docker-compose
Sockness_Rogers
quelle
quelle
Antworten:
Ich habe die gleiche Fehlermeldung auf meinem Windows 10 Pro / Docker v17.06.1-ce-win24 / Docker-Compose v1.14.0 mit Windows Powershell x86 im Administratormodus erhalten.
Die Lösung bestand darin, Docker einfach neu zu starten.
quelle
docker run -p 8080:8080 --name myJenkins -p 50000:50000 jenkins/jenkins:2.107.2
. Nachdem ich Jenkins eingestellt habe, verwende ichdocker stop myJenkins
in einem anderen Befehlsfenster und schalte meinen Host Windows 10 aus. Wenn ich Windows 10 starte, das Docker automatisch startet, verwende ich den Befehldocker start myJenkins
und erhalte die vertraute Meldung. Allerdings Neustart Docker zu lösen Problem :)Wenn dies einmal passiert, wird Docker neu gestartet. In meinem Fall passierte es jedes Mal, wenn ich meinen Computer neu startete.
Deaktivieren Sie in diesem Fall den Schnellstart , oder Sie starten Docker wahrscheinlich jedes Mal neu, wenn Ihr Computer gestartet wird. Diese Lösung wurde von hier erhalten
quelle
Das einfache Neustarten von Docker hat das Problem für mich unter Windows 10 nicht behoben.
In meinem Fall habe ich das Problem mit den folgenden Schritten gelöst:
1) Schließen Sie "Docker Desktop"
2) Führen Sie die folgenden Befehle aus:
3) Starten Sie "Docker Desktop" erneut
Hoffe, das wird jemand anderem helfen.
quelle
Ich habe auch diesen Fehler erhalten. Wenn Sie wissen möchten, warum der Fehler auftritt, weil Docker bereits einen ähnlichen Container ausführt, um das Problem zu beheben (vermeiden Sie einen Neustart von Docker), müssen Sie:
Du hast etwas Ähnliches wie:
Dies ist eine Liste der laufenden Container. Nehmen Sie die CONTAINER-ID (Kopie Ctrl+ C).
Jetzt müssen Sie den Prozess beenden (und ein anderes Image ausführen lassen), um diesen Befehl auszuführen.
Und das ist alles! Jetzt können Sie den Container erstellen.
Weitere Informationen finden Sie unter https://docs.docker.com/get-started/part2/.
quelle
Ich bin mir bewusst, dass es bereits viele Antworten gibt, aber keine hat das Problem für mich gelöst.
Stattdessen habe ich diese Fehlermeldung behoben, indem ich Docker auf die Werkseinstellungen zurückgesetzt habe :
quelle
Normalerweise tritt dieser Fehler auf, wenn Sie versuchen, einen Container zu starten, aber die Ports, die der Container benötigt, werden belegt, normalerweise von demselben Docker, wie das Ergebnis eines letzten fehlerhaften Prozesses zum Stoppen.
Für mich ist die Lösung:
netstat -oan
, um den Prozess zu finden (Docker ist der Prozess), der Ihren Port belegt:In meinem Fall sind meine Docker-Ports 3306 6001 8000 9001.
Jetzt müssen wir diese Ports freigeben, also beenden wir diesen Prozess nach PID (Colum PID), Typ
Starten Sie Docker neu.
Grüße.
quelle
In meinem Fall bestand das Problem darin, dass der Docker-Container (Nginx) 80 Ports verwendet und IIS denselben. Das Einrichten eines anderen Ports in IIS löst das Problem
quelle
In den meisten Fällen ist der erste Fall, an den Sie denken sollten, dass ein alter Dienst ausgeführt wird und diesen Port verwendet. In meinem Fall, da ich den Bildnamen ändere, wird bei Verwendung von Docker-Compose zum Stoppen (dann nach oben) der alte Container (Dienst) nicht gestoppt, was dazu führt, dass der neue Container nicht gestartet werden kann.
quelle
Eine etwas späte Antwort, aber ich werde sie hier belassen, sie könnte jemand anderem helfen. Auf einem Mac-Mojave nach vielen Neustarts von Mac und Docker musste ich
sudo apachectl stop
.quelle
Der einfachste Weg, dies zu lösen, ist das Neustarten des Dockers. In einigen Fällen funktioniert dies jedoch möglicherweise nicht, obwohl im Port keine Container ausgeführt werden. Sie können die ausgeführten Container mit dem
docker ps
Befehl überprüfen und alle Container anzeigen, die vor der Verwendung desdocker ps -a
Befehls nicht gelöscht, sondern beendet wurden .Stellen Sie sich vor, es gibt einen Container mit der Container-ID.
8e35276e845e
Sie können den Befehl verwendendocker rm 8e35276e845e
oderdocker rm 8e3
den Container beenden. Beachten Sie, dass die ersten drei Zeichenfolgen die ID dieser bestimmten Docker-Container-ID sind. Somit ist gemäß dem obigen Szenario 8e3 die ID von 8e35276e845e .Wenn der Neustart nicht funktioniert, können Sie versuchen, die Ports der Dienste in der Datei docker-compose.yml zu ändern. Entsprechend dem Apache-Port müssen Sie den Port des V-Hosts ändern (falls vorhanden). Dadurch wird Ihr Problem behoben Problem.
Ex:
sollte geändert werden in
und der bestimmte V-Host muss auch geändert werden,
Bsp. (Gemäß dem obigen Szenario):
Dies wird Ihnen helfen, das oben genannte Problem zu lösen.
quelle
Für viele Windows-Benutzer da draußen, die das gleiche Problem haben, würde ich empfehlen, den Computer auch neu zu starten, da ein Neustart nur von Docker meistens (zumindest für mich) nicht funktioniert. Daher würde ich vorschlagen, dass Sie die folgenden Schritte ausführen:
Starten Sie dann Ihre PowerShell als Administrator und führen Sie Folgendes aus:
Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
Starten Sie danach Ihren Docker neu.
Nach Abschluss dieser Schritte können Sie problemlos ausgeführt werden. Ich hoffe das hilft.
quelle