python – 芹菜工作者无法连接到docker实例上的redis

python – 芹菜工作者无法连接到docker实例上的redis,第1张

概述我有一个运行Django应用程序的dockerized设置,我在其中使用Celery任务. Celery使用Redis作为经纪人. 版本: > Docker版本17.09.0-ce,构建afdb6d4 > docker-compose版本1.15.0,构建e12f3b9 > Django == 1.9.6 > django-celery-beat == 1.0.1 >芹菜== 4.1.0 >芹菜[ 我有一个运行Django应用程序的dockerized设置,我在其中使用Celery任务. Celery使用Redis作为经纪人.

版本:

> Docker版本17.09.0-ce,构建afdb6d4
> docker-compose版本1.15.0,构建e12f3b9
> Django == 1.9.6
> django-celery-beat == 1.0.1
>芹菜== 4.1.0
>芹菜[redis]
> redis == 2.10.5

问题:

我的芹菜工人似乎无法连接到位于localhost:6379的redis容器.我能够telnet到指定端口上的redis服务器.我能够验证redis-server是否在容器上运行.

当我手动连接到Celery docker实例并尝试使用命令celery -A后端worker -l info创建一个worker时,我收到通知:

[2017-11-13 18:07:50,937:ERROR / MainProcess] consumer:无法连接到redis:// localhost:6379/0:错误99连接到localhost:6379.无法分配请求的地址..
再试一次4.00秒……

笔记:

我能够telnet到端口6379上的redis容器.在redis容器上,redis-server正在运行.

还有什么我想念的吗?我已经离兔子洞很远了,但感觉我错过了一些非常简单的东西.

DOCKER CONfig文件:

docker-compose.common.yml here
docker-compose.dev.yml here

解决方法 当您使用docker-compose时,您不会使用localhost进行容器间通信,而是使用compose分配的容器主机名.在这种情况下,redis容器的主机名是redis.服务下的顶级元素:是您的默认主机名.

所以对于芹菜连接到redis,你应该尝试redis:// redis:6379/0.由于协议和服务名称相同,我将详细说明:如果您在docker-compose中将redis服务命名为“butter-pecan-redis”,则应使用redis:// butter-pecan- Redis的:6379/0.

此外,docker-compose.dev.yml似乎没有芹菜和redis在公共网络上,这可能导致他们无法看到对方.我相信他们需要共享至少一个共同的网络才能解析各自的主机名.

Networking in docker-compose在第一个段落中有一个例子,用docker-compose.yml来看.

总结

以上是内存溢出为你收集整理的python – 芹菜工作者无法连接到docker实例上的redis全部内容,希望文章能够帮你解决python – 芹菜工作者无法连接到docker实例上的redis所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存