簡體   English   中英

Docker 上的 Redis:連接到 0.0.0.0:6379 時出現錯誤 111。 拒絕連接

[英]Redis on Docker: Error 111 connecting to 0.0.0.0:6379. Connection refused

Python 和 Redis 在我的本地工作正常。 我嘗試將項目碼頭化。

當我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

我錯過了什么?

You use bitnami/redis:latest for redis setup, so you surely have another service in docker-compose.yaml to define your django application, then link to that redis container.

問題就在這里,您使用redis://0.0.0.0:6379/1從您的django redis ,它不正確。

事實上,如果你沒有在你的 compose 文件中定義任何自定義的網絡,所有的容器都會在一個默認的網絡中,這意味着你的django容器可以通過服務名直接訪問你的redis容器。

一言以蔽之,你應該改變

redis://0.0.0.0:6379/1

redis://redis:6379/1

您可能想查看Compose 中的網絡

此外,當您公開6379時,將0.0.0.0更改為您的 docker 主機的 ip 可能是另一種選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM