【问题标题】:Connect to redis from another container in docker从 docker 中的另一个容器连接到 redis
【发布时间】:2015-09-13 10:23:59
【问题描述】:

我有使用 Tornado 和 tornado-redis 的应用程序。 [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

我已经用本地 tornado 和 redis 测试了我的代码,它可以工作。

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

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

谢谢!

【问题讨论】:

  • 你能发docker logs some-redisdocker ports some-redis或者用docker exec -it container_id bash连接内部并用lsof -i:5555(如果Redis端口是5555)和netstat -an和任何调试工具检查

标签: python redis docker tornado


【解决方案1】:

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

所以你需要通知tornadoredis redis在哪里运行(因为docker镜像没有在localhost上运行)。

例如:

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

根据您的具体情况,将"redis" 替换为"&lt;hostname&gt;"

【讨论】:

  • 我知道主机,但我忘记了主机“redis”。谢谢!
猜你喜欢
  • 2019-03-17
  • 2019-02-24
  • 2017-10-15
  • 2019-09-04
  • 2020-01-30
  • 1970-01-01
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
相关资源
最近更新 更多