首页 > 解决方案 > Django、Docker、postgreSQL 接受端口 5432 上的 TCP/IP 连接?

问题描述

我正在使用 Docker,我收到了这条消息:

Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?

这是我的 docker-compose :

version: '3.7'

services:
  web:
    container_name: web
    build:
      context: .
      dockerfile: Dockerfile
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/usr/src/web/
    ports:
      - 8000:8000
      - 3000:3000
    stdin_open: true
    depends_on:
      - db

  db:
    container_name: db
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - POSTGRES_HOST_AUTH_METHOD=trust
      - POSTGRES_USER=admin
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=mydb
      - POSTGRES_HOST=localhost
volumes:
  postgres_data:

我精确地将settings.py中参数'HOST'的值更改为db,但它不起作用我仍然有这个错误。

请问你能帮帮我吗 ?

标签: djangopostgresqldockerdocker-compose

解决方案


检查您的旧 postgres 服务器是否正确关闭。您可以通过以下方式删除旧的 docker 图像

docker rmi -f $(docker images -a -q)

码头集装箱修剪

然后运行你的 docker-compose

码头工人组成 --build

希望这会奏效。我遇到了类似的错误,因为我在本地主机上运行了另一个 postgresql。您还可以安装 postgres 应用程序,它将帮助您的数据库强制启动和强制关闭您的 postgres 服务器。


推荐阅读