Docker搭配Postgres使用非5432端口映射时出现连接意外断开错误如何解决
问题核心原因
- 官方Postgres镜像默认仅在容器内部监听5432端口,没有额外修改配置的前提下,容器内部不存在监听5433端口的服务。
- 你最初配置
5433:5433端口映射时,是将宿主机5433端口的请求转发到容器内部的5433端口,该端口没有Postgres服务响应,所以会触发连接断开报错。 - 后续修改为
5433:5432的映射规则后,宿主机5433端口的请求会转发到容器内部Postgres实际监听的5432端口,服务可以正常响应请求,因此连接正常。
如需使用
5433:5433端口映射的配置方案 如果需要让容器内部的Postgres监听5433端口,可以通过修改启动参数实现,参考配置如下:
version: '3' services: db: image: postgres restart: always ports: - '5432:5432' environment: POSTGRES_PASSWORD: pass123 test-db: image: postgres restart: always ports: - '5433:5433' environment: POSTGRES_PASSWORD: pass123 command: postgres -p 5433
配置修改后重新启动容器,5433:5433的端口映射即可正常使用。
内容的提问来源于stack exchange,提问作者Julio W.
相关产品推荐
相关产品推荐

