2015-08-08 14 views
7

Sul mio MBP, con l'ultima boot2docker installato, ho il seguente Dockerfile:Impossibile connettersi a Redis esecuzione come contenitore con boot2docker

FROM redis:3.0.3 
CMD redis-server --bind 0.0.0.0 

corro il seguente:

docker build . 
docker run --rm ba09b207db42 # where ba09b207db42 is the container id returned by the build command 

Poi corro:

redis-cli -h `boot2docker ip` 

E ottengo l'errore:

01.235.164,106 mila

Could not connect to Redis at 192.168.59.103:6379: Connection refused

Cosa mi manca?

risposta

11

Hai dimenticato di esporre la porta. Basta eseguire il contenitore come:

docker run -rm -p 6379:6379 ba09b207db42 

Inoltre:

  • Si potrebbe dare l'immagine di un nome, quindi non si avrebbe bisogno di lavorare con gli ID: docker build -t myimage .

  • È quindi possibile avviare il contenitore in background in modo che non "blocchi" il terminale: docker run --name mycontainer -d -p 6379:6379 myimage

+0

Grazie, ho potuto vedere la porta aperta in 'docker ps' perché la porta è esposta dall'immagine redis quindi ho pensato che non fosse necessario ma questo l'ha sicuramente risolto (facepalm). – jtblin

+4

Le porte che vedi con 'docker ps' sono aperte ma solo ad altri contenitori in esecuzione sullo stesso host. Quando è necessario accedervi dall'esterno della finestra mobile, è necessario specificare tali mappature delle porte. – h3nrik

+0

Grazie mille per la spiegazione aggiuntiva! – jtblin