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

PostgreSQL容器8080端口主机可访问但CI容器无法连接的解决方法

解决CI容器无法访问PostgreSQL容器8080端口的方案

核心问题

主机能访问8080但CI容器不行,本质是lighttpd服务仅绑定了容器的127.0.0.1地址,而非允许所有网卡访问的0.0.0.0。容器有独立的网络命名空间,仅绑定127.0.0.1时,只有容器内部能访问该端口,同一Docker网络内的其他容器无法通过postgresql:8080访问。

修复步骤

1. 修改lighttpd配置

找到docker/postgresql/lighttpd/lighttpd.conf文件,调整监听地址配置:

  • 将原配置中server.bind = "127.0.0.1"修改为server.bind = "0.0.0.0"
  • 确保server.port = 8080配置保持不变

2. 重新构建镜像

配置修改完成后,重新构建PostgreSQL镜像:

docker build -t postgresql:latest -f <你的Dockerfile路径> .

3. 重启容器服务

停止并重启docker-compose中的所有服务:

docker-compose down && docker-compose up -d

验证操作

进入CI容器测试端口连通性:

docker exec -it <CI容器名称或ID> curl http://postgresql:8080

若能正常返回lighttpd的响应内容,说明配置生效。

补充说明

  • EXPOSE指令仅用于声明容器开放的端口,属于镜像的元数据提示,不影响服务的实际网络监听绑定,也不是容器间通信的必要条件。
  • 容器内服务必须监听0.0.0.0,才能被同一Docker网络内的其他容器访问;监听127.0.0.1仅限制容器内部访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 16:55:22