2016-06-18 75 views
6

ERRORE: per dockervel_mysql_1 Non può riavviare contenitore c258b418c03cbd6ec02c349c12cf09403f0eaf42fa9248019af7860d037d6474: driver non è riuscita programmazione connettività esterna su endpoint dockervel_mysql_1 (da3dd576458aa1fe3af7b539c48b9d61d97432cf5e9ee02d78562851f53981ae): E rror starting userland proxy: listen tcp0.0.0.0: 3306: bind: indirizzo già in uso.Errore userland a partire delega: ascolta tcp0.0.0.0: 3306: bind: indirizzo già in uso

Devo fare l'app di LAravel e consegnare un Dockerfile, ma sono davvero bloccato da questo. Prima di allora ho avuto un incubo per l'installazione di laravel sulla mia macchina.

che sto cercando di ottenere dockervel immagine e sto seguendo la procedura qui: http://www.spiralout.eu/2015/12/dockervel-laravel-development.html

Ma quando corro dartisan marca: auth dà questo errore di cui sopra.

ho cercato di modificare la porta predefinita nella finestra mobile-compose.yml

ports:

- "8084:80" 

ancora nulla, ha cercato anche di fermare apache2 (fermata apache2 servizio) sulla mia macchina, anche provato docker- comporre il riavvio e rimuovere il contenitore docker dockervel_mysql_1. Devo dire che ho già un progetto Laravel. in/var/www/laravel.

Si prega di aiuto!

+0

Dal output di 'sudo netstat -antp' ciò che utilizza la porta 3306? – BMitch

+2

Ho capito, presumo che sia il mio mysql locale. Tre giorni fa ho installato laravel e mysql usando questo http://tecadmin.net/install-laravel-framework-on-ubuntu/#. Grazie mille per il tuo aiuto! tcp 0 0 127.0.0.1:3306 0.0.0.0:* ASCOLTA 1370/mysqld – moonlight

+0

risposta goodnesskay mi ha aiutato. Ma per me il comando era: sudo servizio mysql stop – Ago

risposta

6

Probabilmente avete già un servizio MySQL in esecuzione nella porta 3306. Dovreste chiuderlo prima.
Quindi provare a terminare docker-compose down e riavviarlo con docker-compose up.
Ricorda inoltre di cambiare i permessi dopo aver aggiunto un file nel progetto (come dartisan make:auth) con dpermit

UPDATE: dal momento che si è modificata la porta a "8084" si dovrebbe andare a localhost:8084
Se vedi l'impostazione predefinita di apache, probabilmente stai navigando su un altro server poiché dockervel è basato su nginx.
Probabilmente hai anche qualche lacuna nella finestra mobile. Non mescolare la memoria locale con la finestra mobile. /var/www in un contenitore è diverso da quello locale /var/www. in docker-compose.yml si monta il locale ~/dockervel/www in contenitori /var/www.
Ti suggerisco di ricominciare tutto da capo e di ripristinare le modifiche apportate al tuo server Apache. Spegnilo, non ne hai bisogno. Dockervel ti fornirà un server NginX in un contenitore.

+0

Guarda il mio nuovo commento qui sotto! – moonlight

1

L'errore che si sta verificando proviene da un'istanza mysql locale in ascolto sulla porta 3306 (attualmente su pid 1370 dai commenti). Non sarà possibile eseguire un contenitore che viene pubblicato su questa porta host mentre è già in uso da un altro processo. Le soluzioni sono per arrestare mysql sull'host locale o per modificare/rimuovere la porta pubblicata nel contenitore. Se la porta è necessaria solo per altri contenitori, è possibile lasciarla non pubblicata e possono comunicare direttamente sulla rete privata della finestra mobile (per impostazione predefinita, si tratta di "bridge").

+0

$ servizio mysqld stop mi dà questo: $ mysqld: servizio non riconosciuto La seconda soluzione è complicata come sembra? – moonlight

+0

Probabilmente si può fare un 'ls/etc/init.d' per trovare il nome del servizio per mysql. Cambiare la porta mysql pubblicata è la stessa che hai modificato per la porta 80, devi solo farlo per 3306 anziché 80. – BMitch

3

su Ubuntu che esegue questo comando interromperà il funzionamento di mysql da parte del contenitore docker.

sudo service mysqld stop 

Quindi, se il vostro apache2 è in esecuzione, è necessario interrompere il servizio, soprattutto quando si desidera lavorare con nginx.

sudo service apache2 stop 

Quindi, è possibile eseguire il comando docker-compose up -d ...

1

Ho avuto lo stesso problema e

sudo netstat -nlpt |grep 3306 

mi ha mostrato il PID, e che il servizio è stato avviato da (mysgld). Ogni volta che ho provato a uccidere il PID, è stato riavviato. Ma il problema è stato risolto quando mi sono fermato il servizio da

sudo service mysql stop 

noti che si dovrà usare mysql e non mysqld.

Spero che questo lo farà per voi - sono stato in grado di eseguire senza problemi docker-compose up