gpt4 book ai didi

python - Docker 上的 Redis : Error 111 connecting to 0. 0.0.0 :6379. 连接被拒绝

转载 作者:行者123 更新时间:2023-12-03 08:26:44 27 4
gpt4 key购买 nike

Python 和 Redis 在我的本地运行良好。我尝试将项目 Docker 化。

当我docker-compose up时,redis 容器工作正常。

> Server initialized
> Ready to accept connections

但是当我在 POSTMAN 中调用请求时,出现以下错误:

Error 111 connecting to 0.0.0.0:6379. Connection refused.

我的设置:

CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://0.0.0.0:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}

我的 docker-compose.yml:

redis:
image: bitnami/redis:latest
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf
environment:
- ALLOW_EMPTY_PASSWORD=yes
ports:
- "6379:6379"

...并在 Dockerfile 中:

ENV REDIS_URL=redis://0.0.0.0:6379/1

我错过了什么?

最佳答案

您使用bitnami/redis:latest进行redis设置,因此您肯定在docker-compose.yaml中有另一个服务来定义您的django应用程序,然后链接到该服务redis 容器。

问题就在这里,您使用 redis://0.0.0.0:6379/1django 连接到 redis 容器> 容器,这是不正确的。

事实上,如果您没有在 compose 文件中定义任何自定义网络,则所有容器都将位于默认网络中,这意味着您的 django 容器可以直接访问您的 redis 带有服务名称的容器。

总而言之,你应该改变

redis://0.0.0.0:6379/1

redis://redis:6379/1

您可能想查看Networing in Compose

此外,由于您公开 6379,因此将 0.0.0.0 更改为您的 Docker 主机的 IP 可能是另一种选择。

关于python - Docker 上的 Redis : Error 111 connecting to 0. 0.0.0 :6379. 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66448777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com