【问题标题】:Is the server running on host "postgres_db" (10.10.0.4) and acceptinG TCP/IP connections on port 5434?服务器是否在主机“postgres_db”(10.10.0.4)上运行并接受端口 5434 上的 TCP/IP 连接?
【发布时间】:2021-04-03 16:05:00
【问题描述】:

这是 django

的 docker compose
environment:
      SECRET_KEY: "KEY"
      DEBUG: "True"
      NAME: "NAME"
      USER: "USER"
      PASSWORD: "PASSWORD"
      HOST: "HOST"
      PORT: "5434"
    depends_on:
      - postgres_db

这是 postgres

的 docker compose
  postgres_db:
    image: postgres
    environment:
      POSTGRES_HOST_AUTH_METHOD: trust
      POSTGRES_USER: ss
      POSTGRES_PASSWORD: ss
      PGDATA: /data/ss
    volumes:
      - postgres:/data/postgres

    ports:
      - "5434:5432"
    networks:
      main_network:
        ipv4_address: 10.10.0.4
    restart: unless-stopped

这是我的数据库django设置中的配置数据

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME':  os.getenv('NAME'),

        'USER':  os.getenv('USER'),

        'PASSWORD':  os.getenv('PASSWORD'),

        'HOST': "postgres_db",

        'PORT':  os.getenv('PORT')
    }
}

我找不到我的错误。我花了 4-5 个小时,但没有成功。

我仍然收到此错误服务器是否在主机“postgres_db”(10.10.0.4)上运行并接受端口 5434 上的 TCP/IP 连接?当我编写 docker compose up 时

【问题讨论】:

  • postgres 容器是否正常工作?您是否检查了其容器中 postgres 服务的状态?
  • @Jarvis 是的,它工作正常,如果我在我的设置文件中写入 127.0.0.1,我可以连接。但在 docker 中它不起作用。
  • 为什么要在 postgres 的 Dockerfile 中添加网络配置?
  • @Jarvis 因为我想在 docker 中从 django 连接
  • 不能直接在localhost上使用docker容器的名字吗?为什么要明确指定10.10.0.4

标签: python django postgresql docker docker-compose


【解决方案1】:

默认情况下,它通常在端口“5432”上运行。

【讨论】:

    【解决方案2】:

    解决方案

    我删除了所有容器、卷和图像然后工作。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 2018-01-20
      • 2017-06-09
      • 1970-01-01
      • 2018-06-22
      • 2016-05-30
      • 1970-01-01
      • 2022-07-09
      • 2021-11-29
      相关资源
      最近更新 更多