我花了很长时间尝试在使用Docker-Compose时将Django容器连接到Redis。经过几个小时的修改Docker和Django的配置文件,并尝试不同的方式来运行所有的东西,我终于发现Redis正在向主机广播。
这些是我每次尝试都会遇到的错误:
- 错误111连接到0.0.0.0:6379。连接被拒绝。
- 错误61连接到localhost:6379。连接被拒绝。
- 错误111连接到127.0.0.1:6379。连接被拒绝。
最后,我把Redis的Django IP配置改成了Docker主机IP,它工作得很好。
有没有人知道一种方法来配置一切,让Django在内部Docker网络上而不是外部主机上查找Redis?
仅供参考-我是个菜鸟。
2条答案
按热度按时间iyr7buue1#
主机名就是运行Redis的容器的名称。例如,如果你的docker-compose包含这样的内容:
然后,您需要设置配置以连接到
cache:6379
vngu2lb82#
只是添加到下面的答案,使用Docker compose时可能的问题是直接引用localhost。我们必须使用服务名称。
所以如果你在docker compose中使用redis,就像这样:
然后在settings.py中,像这样引用该服务: