2014-09-13 30 views
15

Seguendo questo esempio: https://docs.docker.com/engine/examples/mongodb/Impossibile connettersi a MongoDB esecuzione in finestra mobile contenitore

Quando si tenta di connettersi a MongoDB con: mongo ip:27017 (dove IP è il nome da boot2docker ip) + il numero di porta da finestra mobile ps:

27017/tcp
o con -P
0.0.0.0:49155->27017/tcp

ogni modo ottengo i seguenti errori:

warning: Failed to connect to ip:27017, reason: errno:61 Connection refused

Error: couldn't connect to server ip:27017 (ip), connection attempt failed at src/mongo/shell/mongo.js:148 exception: connect failed

+1

utilizzare 'registri docker ' e 'ps' per verificare che mongodb sia effettivamente in esecuzione e in ascolto sulla porta che hai esposto. – ZeissS

+3

ok controlla il tutorial in modo più approfondito: puoi pubblicare la riga da 'docker ps' per il contenitore? Penso che tu abbia confuso la porta interna con il porto pubblico. – ZeissS

+0

Grazie per avermi fatto ripensare :-) –

risposta

10

stavo usando la porta 27017 invece di 49155 (doh, port forwarding)

0.0.0.0:49155->27017/tcp

Grazie a ZeissS

+4

Quelli (come me) che hanno ottenuto confuso con la risposta. utilizzare il seguente per connettersi. ** $ mongo IP: 49155 ** – Jardalu

+0

 If you are on a Mac and using Docker Machine, do the following: 1. Get the name of the VM running docker daemon $ **docker-machine ls** 2. Get the VM's IP info $ **docker-machine env ** 3. Connect with the mongo client to the VM IP and the mongo mapped port $ **mongo VM-IP:port** 
VMTrooper

+0

@Jardalu Sono ancora confuso – Aleksandrus

7

se siete su un Mac e l'utilizzo della macchina Docker, effettuare le seguenti operazioni:

 
1. Get the name of the VM running docker daemon 
$ docker-machine ls 

2. Get the VM's IP info 
$ docker-machine env 

3. Connect with the mongo client to the VM IP and the mongo mapped port 
$ mongo VM-IP:port 
+2

Questa è una risposta valida se si utilizza la versione di Docker della VirtualBox/finestra mobile (Windows/Mac). – Flash

13

Se è stata specificata la porta corretta e non ancora in grado di connettersi a mongodb in esecuzione nella finestra mobile (come me), assicurati di utilizzare il nome del servizio (o il nome del contenitore) nell'URL della connessione, ad es. mongodb://mongodb_service:27017/mydb, che è definito nella tua docker-compose.yml:

services: 
    mongodb_service: 
    image: mongo 

stavo usando il valore hostname e che non è la cosa giusta da fare. È possibile verificare ciò osservando docker inspect mongodb_service nella sezione Aliases.

+0

corretto. Per me funziona. –

+0

Sei il mio salvatore! – SegFault

Problemi correlati