从Docker中的另一个容器连接到Redis [英] Connect to redis from another container in docker
问题描述
我有一个应用,该应用使用了Tornado和 tornado-redis 。 [ docker图像
中的图像 app]
我开始redis:
docker run --name some-redis -d redis
然后我要链接我的带有redis的应用程序:
docker run --name some-app --link some-redis:redis app
我有错误:
回溯(最近一次通话最近):
文件 ./app.py,第41行,在< module>中
c.connect()
文件 /usr/local/lib/python3.4/site-packages/tornadoredis/client.py,连接
中的第333行
self.connection.connect()
文件 /usr/local/lib/python3.4/site-packages/tornadoredis/connection.py,行
79,在connect
中引发ConnectionError (str(e))
tornadoredis.exceptions.ConnectionError:[Errno 111]连接被拒绝
我已经用本地龙卷风和redis测试了我的代码,并且可以正常工作。
c中的问题= tornadoredis.Client()
c.connect()
为什么我的应用无法与redis容器连接?如何解决?我使用标准端口6379。
谢谢!
tornadoredis
尝试在 localhost
上使用Redis。 (请参见来源此处)
因此,您需要通知 tornadoredis
Redis的运行位置(由于Docker镜像未在 localhost
)。
例如:
c = tornadoredis.Client(host =< hostname>)
c.connect()
在您的特定情况下,用 I have app, that used Tornado and tornado-redis. [image "app" in Then I want to link my app with redis: And I have error: I have tested my code with local tornado and redis, and it works. The problem in Why my app cant connet to redis-container? How to fix that? I use standart port 6379. Thanks! So you need to inform For example: In your specific case, substitute 这篇关于从Docker中的另一个容器连接到Redis的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋! redis
代替< hostname> 。 / p>
docker images
]
I start redis:docker run --name some-redis -d 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
c = tornadoredis.Client()
c.connect()
tornadoredis
attempts to use redis on localhost
. (See source here)tornadoredis
where redis is running (since to the docker image it is not running on localhost
).c = tornadoredis.Client(host="<hostname>")
c.connect()
"redis"
for "<hostname>"
.