无法从Docker容器内部连接到Redis

当我启动Docker容器时,

OSError: Multiple exceptions: [Errno 111] Connect call failed ('::1', 6379), [Errno 111] Connect call failed ('127.0.0.1', 6379) 

从Python,但这个代码在主机上工作正常。 如何解决这个问题?

Dockerfile: gist ,操作系统:macOS 10.12

您只能拥有一个CMD语句。 要在单个容器中启动redis-serverpython您需要定义一个脚本或运行像supervisord这样的工具来pipe理您的进程。 https://docs.docker.com/engine/admin/multi-service_container/解释了一些选项,并给出了例子。 在你的情况下,我会给一个shell脚本的方法一试。 Phusion基础镜像https://github.com/phusion/baseimage-docker是一个更高级的select,通过初始化服务启动每个进程,但是对于你的用例来说可能是过度的。