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



我在一个虚拟机中使用在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容器中的pg_hba文件实际上是为0.0.0.0上的公开端口5432配置的。并且您不需要为此创建卷。

假设您的机器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

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

(对不起我糟糕的英语(

最新更新