2015-08-08 5 views
7

На мой MBP, с установленным последним boot2docker, я следующий Dockerfile:Не удается подключиться к Redis работает как контейнер с boot2docker

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

Я бегу следующее:

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

Тогда я бегу:

redis-cli -h `boot2docker ip` 

И я получаю ошибку:

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

Что мне не хватает?

ответ

11

Вы забыли открыть порт. Просто запустите контейнер как:

docker run -rm -p 6379:6379 ba09b207db42 

Дополнительно:

  • Вы могли бы дать изображению имя, чтобы вам не нужно было бы работать с идентификаторами: docker build -t myimage .

  • Вы можете затем начать контейнер в фоновом режиме, чтобы он не «блокировал» ваш терминал: docker run --name mycontainer -d -p 6379:6379 myimage

+0

Спасибо, я видел, что порт открыт в 'docker ps', поскольку порт отображается на изображении redis, поэтому я думал, что он не нужен, но это определенно решило его (facepalm). – jtblin

+4

Порты, которые вы видите с помощью 'docker ps', открыты, но только для других контейнеров, работающих на одном хосте. Когда вам нужно получить к ним доступ извне докера, вам нужно указать такие сопоставления портов. – h3nrik

+0

Спасибо за тонну за дополнительное объяснение! – jtblin

Смежные вопросы