Docker部署PostgreSQL使用非标准端口时容器间无法连接求助
问题根因
ports字段的5433:5432是宿主机端口到容器内部端口的映射规则,仅作用于宿主机本地、宿主机外部网络的访问请求。同一proj网络下的容器通信走Docker网桥转发,不会触发ports的映射逻辑,因此访问database容器的5433端口无法命中映射规则。- 容器内的PostgreSQL进程默认仅监听5432端口,你配置的
expose: 5433只是Docker层面的端口声明,不会修改PostgreSQL本身的监听配置,同网络容器请求5433端口时没有对应的服务响应,自然连接失败。
可选方案
- 如果仅需要宿主机/外部网络通过5433访问PostgreSQL,当前配置已经满足要求,直接访问宿主机IP+5433端口即可正常连接。
- 如果确实需要同网络容器通过5433端口访问该服务,可以修改PostgreSQL配置新增监听5433端口,或是新增端口转发Sidecar容器将容器内5433端口流量转发到5432端口。
内容的提问来源于stack exchange,提问作者IvRRimUm
相关产品推荐
相关产品推荐

