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

标签 python redis docker tornado

我有使用 Tornado 和 tornado-redis 的应用程序。 [docker 镜像 中的镜像“应用程序”] 我启动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。

谢谢!

最佳答案

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

所以您需要通知tornadoredis redis 运行的位置(因为对于 docker 镜像,它没有在 localhost 上运行)。

例如:

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

根据您的具体情况,替换 "redis"对于 "<hostname>" .

关于python - 从docker中的另一个容器连接到redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31073614/

相关文章:

python - 使用中间件存储的数据异步更新页面

python - 通过客户端/服务器之间现有的 ssh 连接从服务器远程登录到设备

ASP.NET 数据缓存与 Azure Redis 缓存?

caching - Redis线程和访问问题

redis - nodejs redis 中回调函数的限制?

macos - Docker/Boot2Docker : Set HTTP/HTTPS proxies for docker on OS X

bash - 使用与父用户相同的 UID/GID 运行 docker 或 docker-compose 的简单方法?

python - 如何将所有记录(按名称过滤)显示到表单中,Django

docker - 在主机上使用Nginx反向代理在Docker中部署nextjs应用

python - 如何从抓取的数据中去除 html 标签和 javascript 函数?