gpt4 book ai didi

postgresql - Docker 和 Postgres - 服务器在使用 5432 以外的端口时意外关闭连接错误

转载 作者:行者123 更新时间:2023-12-02 18:30:39 24 4
gpt4 key购买 nike

我在使用 Postgres 和 Docker 时遇到了这个奇怪的错误。所以,我的 docker-compose 文件中有两个服务:

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

因此,当我运行“docker-compose up -d”时,两个容器都会被挂载。命令“docker ps”给我:

CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                                 NAMES
a76fcc56f928 postgres "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp nodejs-nest_iluvcoffe_db_1
9ab54557063f postgres "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 5432/tcp, 0.0.0.0:5433->5433/tcp, :::5433->5433/tcp nodejs-nest_iluvcoffe_test-db_1

当我尝试连接到映射端口 5432->5432 的容器时,一切正常。但是,当我尝试连接到映射端口 5433->5433 的容器时,出现错误:

server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.

但是,如果我像这样映射端口:

version: '3'
services:
db:
image: postgres
restart: always
ports:
- '5432:5432'
environment:
POSTGRES_PASSWORD: pass123

test-db:
image: postgres
restart: always
ports:
- '5433:5432'
environment:
POSTGRES_PASSWORD: pass123

然后,我将在我的“docker ps”中:

CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                       NAMES
5228461a2cff postgres "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp nodejs-nest_iluvcoffe_db_1
39353d05004c postgres "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 0.0.0.0:5433->5432/tcp, :::5433->5432/tcp nodejs-nest_iluvcoffe_test-db_1

而且我可以连接到两个容器/postgres 服务器。有人知道这是为什么吗?为什么我不能使用 5433->5433 端口映射?

最佳答案

我相信我明白发生了什么。在容器内,默认情况下,postgres 将在端口 5432 上运行,即使我映射到 ports 指令也是如此:

ports:
- '5433:5433'

为了告诉 postgres 在容器内运行哪个端口,我使用了以下设置:

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: -p 5433

现在一切正常

关于postgresql - Docker 和 Postgres - 服务器在使用 5432 以外的端口时意外关闭连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69462794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com