You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django无法连接Fedora环境下运行中的Postgres Docker容器问题求助

排查步骤与解决方案

1. 优先验证容器网络基础连通性

先进入Django应用容器手动测试网络连通性,排除域名解析、端口不通问题:

  • 执行进入容器命令:docker exec -it data-management bash
  • 容器内执行ping测试:ping postgresdb,如果ping不通说明docker网桥内部域名解析或网络隔离异常
  • 容器内执行端口连通性测试:nc -zv postgresdb 5432,如果返回连接失败说明postgres端口未对外开放或被拦截

2. 排查Fedora防火墙拦截问题

Fedora默认启用firewalld防火墙,大概率会拦截docker网桥内部的跨容器通信,可按以下步骤验证修复:

  • 临时关闭防火墙测试:sudo systemctl stop firewalld,之后重启docker服务和容器,看能否正常连接。如果恢复正常说明是防火墙规则问题
  • 永久放行docker子网流量:
    # 替换为你的docker实际子网,报错里的网段是172.27.0.0/16可直接用
    sudo firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.27.0.0/16 accept' --permanent
    sudo firewall-cmd --reload
    sudo systemctl restart docker
    

3. 验证SELinux影响

即使没有权限相关报错,Fedora的SELinux策略也可能拦截容器间通信,可临时关闭验证:

  • 临时关闭SELinux:sudo setenforce 0,重启容器测试连接
  • 如果确认是SELinux导致,可执行命令放开容器通信权限:sudo semanage permissive -a container_t

4. 优化docker-compose配置

你使用的links属性已经被官方废弃,默认同docker-compose项目下的服务会加入同一个默认网桥,可调整配置明确网络配置和启动顺序:

version: "3.8"
services:
  app:
    container_name: data-management
    restart: always
    build: ./
    ports:
      - '3000:3000'
    volumes:
      - ./:/usr/local/share/src/app
    env_file:
      - .dev.env
    depends_on:
      - postgresdb
    networks:
      - app-network

  postgresdb:
    container_name: be-postgres
    restart: always
    image: postgres:13.4-alpine
    ports:
      - '5432:5432'
    volumes:
      - postgres-db:/var/lib/postgresql/data
    env_file:
      - .dev.env
    networks:
      - app-network

volumes:
  postgres-db:

networks:
  app-network:
    driver: bridge

调整配置后执行docker-compose up -d --force-recreate重建容器生效。

5. 验证Postgres访问配置

进入Postgres容器检查pg_hba.conf配置,确保允许外部网段访问:

  • 进入postgres容器:docker exec -it be-postgres bash
  • 查看配置文件:cat /var/lib/postgresql/data/pg_hba.conf,确认存在host all all 0.0.0.0/0 scram-sha-256规则,没有的话手动添加后重启postgres容器即可。

内容的提问来源于stack exchange,提问作者dsax7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:15:02