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

Docker容器无法连接自身主机IP创建Postgres数据库的问题排查求助

Docker容器内连接Postgres数据库失败的奇怪问题

最近在用Docker跑Postgres 11容器时碰到个头疼的问题,想请教下大家:

我写了个Shell脚本create_database,用来指定IP地址创建Postgres数据库。在容器外面执行./create_database localhost的时候完全正常,能顺利创建连接到本地的数据库;但当我进入容器内部,执行./create_database <容器名称>时,虽然容器名称能正确解析成容器的IP地址,却直接报错:

psql: connection to server at <容器名称> (xxx.xx.x.x), port 5432 failed: Connection refused Is the server running on that host and accepting TCP/IP connections

我搞不懂为啥外部没问题,容器里就不行?是不是得做点配置让容器的IP允许连接啊?我知道外部访问容器要映射端口,但这个对当前场景好像没用;另外我还特意创建了Docker网络,把容器加进去,用网络里的IP去连数据库,结果还是一样失败。

下面是我的相关配置,给大家参考:

我的Dockerfile

FROM Postgres:11
COPY . .
USER postgres
ENTRYPOINT ["bash", "-c"]

环境配置文件(我感觉可能配错了,但就算不用这个文件,结果也没变化)

POSTGRES_USERNAME=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_HOST=localhost
POSTGRES_PORT_LOCAL=5432

运行容器的命令

docker run -it --name database --network net --rm --env-file path/to/.env database bash

对了,我用的是Linux版本的Docker 20.10.17,刚接触Docker没太久,如果有什么关键信息我漏了,大家告诉我,我马上补充!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:37:34