it-swarm.com.de

Fehler beim Starten des Userland-Proxys: Listen tcp0.0.0.0: 3306: bind: Adresse wird bereits verwendet

ERROR: für dockervel_mysql_1 Can not Container c258b418c03cbd6ec02c349c12cf09403f0eaf42fa9248019af7860d037d6474 neu starten: Treiber externe Verbindungen Programmierung fehlgeschlagen auf Endpoint-dockervel_mysql_1 (da3dd576458aa1fe3af7b539c48b9d61d97432cf5e9ee02d78562851f53981ae): Error Start Userland-Proxy: hören tcp0.0.0.0: 3306: bind : Adresse bereits verwendet.

Ich muss LAravel-App erstellen und eine Dockerfile liefern, aber ich bin wirklich fest damit beschäftigt. Vorher hatte ich einen Albtraum, während ich Laravel auf meiner Maschine installierte.

Ich versuche, ein Dockervel-Image zu erhalten, und folge hier den Schritten: http://www.spiralout.eu/2015/12/dockervel-laravel-development.html

Aber wenn ich dartisan make: auth betreibe, wird dieser Fehler oben angezeigt.

Ich habe versucht, den Standardport in der Docker-compose.yml zu ändern

häfen:

- "8084:80"

noch nichts, versuchte auch Apache2 (Dienst Apache2 stop) auf meinem Rechner zu stoppen, versuchte auch docker-compose restart und entfernte Docker-Container dockervel_mysql_1 . Ich muss sagen, dass ich schon ein Projekt habe Laravel proj. in/var/www/laravel.

Bitte helfen!

9
moonlight

Wahrscheinlich haben Sie bereits einen MySQL-Dienst in Port 3306. Sie sollten ihn zuerst schließen.
Versuchen Sie dann, docker-compose down zu beenden, und starten Sie es erneut mit docker-compose up.
Denken Sie auch daran, die Berechtigungen zu ändern, nachdem Sie in Ihrem Projekt eine Datei (wie dartisan make:auth) mit dpermit hinzugefügt haben.

UPDATE: Da Sie den Port in "8084" geändert haben, gehen Sie zu localhost:8084.
Wenn Sie den Apache-Standard sehen, surfen Sie wahrscheinlich auf einem anderen Server, da dockervel auf nginx aufbaut.
Sie haben wahrscheinlich auch ein paar Lücken in Docker. Mischen Sie Ihren lokalen Speicher nicht mit Docker-Speicher. /var/www in einem Container unterscheidet sich von Ihrem lokalen /var/www. In docker-compose.yml mounten Sie den lokalen ~/dockervel/www an die Container /var/www.
Ich würde vorschlagen, dass Sie noch einmal von vorne beginnen und die Änderungen, die Sie an Ihrem Apache-Server vorgenommen haben, wiederherstellen. Mach es aus, du brauchst es nicht. Dockervel stellt Ihnen einen NginX-Server in einem Container zur Verfügung.

8
Spiral Out

Ich hatte das gleiche Problem und

Sudo netstat -nlpt |grep 3306

zeigte mir die PID und von welchem ​​Dienst es gestartet wurde (mysgld). Wann immer ich versuchte, die PID zu töten, wurde sie erneut gestartet. Das Problem wurde jedoch behoben, als ich den Dienst anhielt

Sudo service mysql stop

Beachten Sie, dass Sie mysql und nicht mysqld verwenden müssen.

Ich hoffe, dass dies für Sie erledigt wird - ich konnte docker-compose up ohne Probleme ausführen

16
Per Mikkelsen

wenn der Befehl unter Ubuntu ausgeführt wird, wird Ihr mysql nicht mehr ausgeführt, damit der Docker-Container funktioniert.

Sudo service mysqld stop  

Wenn der Apache2 ausgeführt wird, müssen Sie den Dienst beenden, insbesondere wenn Sie mit nginx arbeiten möchten.

Sudo service Apache2 stop

Dann können Sie Ihren docker-compose up -d ...-Befehl ausführen 

4
goodnesskay

Der Fehler, den Sie sehen, ist von einer lokalen MySQL-Instanz, die Port 3306 überwacht (derzeit auf PID 1370 von Ihren Kommentaren). Sie können keinen Container ausführen, der auf diesem Host-Port veröffentlicht wird, während er bereits von einem anderen Prozess verwendet wird. Die Lösungen bestehen entweder darin, mysql auf dem lokalen Host anzuhalten oder den veröffentlichten Port in Ihrem Container zu ändern oder zu entfernen. Wenn der Port nur von anderen Containern benötigt wird, können Sie ihn unveröffentlicht lassen, und er kann direkt über das private Docker-Netzwerk kommunizieren (standardmäßig ist dies "bridge").

1
BMitch

Sie müssen den mysql-Port Ändern, da Sie mysql auf Ihrem Computer installieren und der Standardport 3306 verwendet wird

und jetzt versuchen Sie, dockervel_mysql_1 zum selben Port 3306 laufen zu lassen. Deshalb sehen Sie im Fehler "Adresse bereits verwendet".

wenn Sie beispielsweise den Anschluss dockervel_mysql_1 in 3307 ändern, funktioniert dies einwandfrei, ohne dass der auf Ihrem Computer ausgeführte mysql angehalten wird 

0