在不同的端口上运行 PostgreSQL docker 镜像

Fra*_*oni 5 postgresql docker


我试图在不同的端口上运行 PostgreSQL 实例,方法是将端口设置为 '-p' 中的参数,但它似乎没有任何效果。前任:

docker run --name db_Dev -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgresDev -p 7432:7432 postgres:10.5
Run Code Online (Sandbox Code Playgroud)

输出:

2019-09-15 17:50:29.494 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2019-09-15 17:50:29.494 UTC [1] LOG:  listening on IPv6 address "::", port 5432
Run Code Online (Sandbox Code Playgroud)

知道如何为其设置不同的端口吗?谢谢

mch*_*wre 11

如果要运行多个 Postgres 实例或更改 Postgres 的侦听端口,请按照此操作。

docker run --name db_Dev -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgresDev -p 7432:5432 postgres:10.5
Run Code Online (Sandbox Code Playgroud)

-p 7432:5432是将 Postgres 容器内的端口 5432 映射到主机的端口 7432。

或者您可以通过将环境变量设置PGPORT7432.

docker run --name db_Dev -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=postgresDev -e PGPORT=7432 -p 7432:7432 postgres:10.5
Run Code Online (Sandbox Code Playgroud)

注意:如果PGPORT不起作用,请尝试POSTGRES_PORT.

  • PGPORT 就是我一直在寻找的!其他 StackOverflow 帖子只是提到了您提到的重新映射(选项 1),但没有讨论您在不同端口上运行 postgres 本身时给出的选项 2。所以谢谢! (3认同)
  • 如果使用“bitnami/postgresql”映像,则环境变量为“POSTGRESQL_PORT_NUMBER”。更多环境变量参见:[postgresql-env.sh](https://github.com/bitnami/containers/blob/371f6977c73ad9edfca4e68ddf02009188d48232/bitnami/postgresql/14/debian-11/rootfs/opt/bitnami/scripts/postgresql-env .sh#L39) (2认同)