如何在 docker 中配置 postgres 以远程连接它

问题描述 投票:0回答:1

我在一个虚拟机中使用在 Docker 中运行的 Postgres,我想使用以下方法连接到另一台虚拟机上的这个 Postgres:

psql -h \<IP_Address\> -p \<port_no\> -d \<database_name\> -U \<DB_username\>. 

我知道我必须更改pga_hba.file,但我也知道容器的内容不能更改。我认为最好的方法是使用 pga_hba.conf 添加一个卷,但我不知道该怎么做。我将非常感谢您的帮助。

我试过这个命令:

docker run -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=db_tes -v /var/lib/postgresql/data -p 5432:5432 postgis/postgis:13-master
postgresql docker database-connection psql
1个回答
0
投票

实际上,postgresql 容器中的

pg_hba
文件配置为在
5432
上公开端口
0.0.0.0
。你不需要为此创建音量。

假设你的机器ip是

192.168.1.2
。以这种方式运行你的容器:

docker run -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=db_tes -v /var/lib/postgresql/data -p 5432:5432 postgres:13.6

检查您的防火墙(可能是端口

5432
被阻止)。现在 postgres 正在收听:
192.168.1.2:5432

你可以在你的另一台机器上使用这个命令连接到它(如果它们在同一个子网中)。假设你的另一台机器 ip 是

192.168.1.25
:

psql -h 192.168.1.2 -p 5432 -d <database_name> -U <DB_username> -p

然后你可以看到你的数据库。

(对不起我糟糕的英语)

© www.soinside.com 2019 - 2024. All rights reserved.