无法连接到使用boot2docker作为容器运行的redis

无法连接到使用boot2docker作为容器运行的redis,redis,docker,boot2docker,Redis,Docker,Boot2docker,在我的MBP上,安装了最新的boot2docker,我有以下Dockerfile: 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 i

在我的MBP上,安装了最新的
boot2docker
,我有以下
Dockerfile

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`
我得到了一个错误:

无法连接到192.168.59.103:6379的Redis:连接被拒绝


我遗漏了什么?

您忘了暴露端口。只需按如下方式运行容器:

docker run --rm -p 6379:6379 ba09b207db42
此外:

  • 您可以为映像命名,这样就不需要使用ID:
    docker build-t myimage.

  • 然后,您可以在后台启动容器,这样它就不会“阻塞”您的终端:
    docker run--name mycontainer-d-p 6379:6379 myimage


谢谢,我可以在
docker ps
中看到端口打开,因为redis图像显示了该端口,所以我认为不需要它,但这确实解决了问题(facepalm)。使用
docker ps
看到的端口是打开的,但仅对同一主机上运行的其他容器开放。当您需要从docker外部访问它们时,您需要指定这样的端口映射。非常感谢您的额外解释!