从 docker 中的另一个容器连接到 redis
Connect to redis from another container in docker
我有应用程序,它使用了 Tornado 和 tornado-redis。 [docker images
中的图像 "app"]
我启动redis:
docker run --name some-redis -d redis
然后我想 link 我的应用程序与 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
我已经用本地的tornado 和redis 测试了我的代码,它可以工作。
中的问题
c = tornadoredis.Client()
c.connect()
为什么我的应用无法连接到 redis-container?如何解决?我使用标准端口 6379。
谢谢!
tornadoredis
尝试在 localhost
上使用 Redis。 (参见来源 here)
所以你需要通知 tornadoredis
redis 在 运行 的位置(因为 docker 图像在 localhost
上不是 运行)。
例如:
c = tornadoredis.Client(host="<hostname>")
c.connect()
在您的具体情况下,将 "redis"
替换为 "<hostname>"
。
我有应用程序,它使用了 Tornado 和 tornado-redis。 [docker images
中的图像 "app"]
我启动redis:
docker run --name some-redis -d redis
然后我想 link 我的应用程序与 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
我已经用本地的tornado 和redis 测试了我的代码,它可以工作。
中的问题c = tornadoredis.Client()
c.connect()
为什么我的应用无法连接到 redis-container?如何解决?我使用标准端口 6379。
谢谢!
tornadoredis
尝试在 localhost
上使用 Redis。 (参见来源 here)
所以你需要通知 tornadoredis
redis 在 运行 的位置(因为 docker 图像在 localhost
上不是 运行)。
例如:
c = tornadoredis.Client(host="<hostname>")
c.connect()
在您的具体情况下,将 "redis"
替换为 "<hostname>"
。