从docker中的另一个容器连接到redis

时间:2015-06-26 12:49:12

标签: python redis docker tornado

我有app,使用了Tornado和tornado-redis。 [image" app"在docker images] 我开始redis:

docker run --name some-redis -d redis

然后我想用redis链接我的应用程序:

docker run --name some-app --link some-redis:redis app

我有错误:

Traceback (most recent call last):
  File "./app.py", line 41, in <module>
    c.connect()
  File "/usr/local/lib/python3.4/site-packages/tornadoredis/client.py", line 333
, in connect
    self.connection.connect()
  File "/usr/local/lib/python3.4/site-packages/tornadoredis/connection.py", line
 79, in connect
    raise ConnectionError(str(e))
tornadoredis.exceptions.ConnectionError: [Errno 111] Connection refused

我已经使用本地龙卷风和redis测试了我的代码,并且它可以工作。

中的问题
c = tornadoredis.Client()
c.connect()

为什么我的应用程序无法连接到redis-container?如何解决?我使用标准端口6379。

谢谢!

1 个答案:

答案 0 :(得分:4)

tornadoredis尝试在localhost上使用redis。 (参见来源here

因此,您需要通知tornadoredis redis正在运行的位置(因为对于Docker镜像,它不在localhost上运行)。

例如:

c = tornadoredis.Client(host="<hostname>")
c.connect()

在您的具体情况下,请将"redis"替换为"<hostname>"