我在一个虚拟机中使用在 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
文件配置为在 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
然后你可以看到你的数据库。
(对不起我糟糕的英语)