我需要帮助从 Windows 10 PgAdmin 连接安装在 HyperV ubuntu 18.4 内的 Docker 中的 PostgreSQL。到目前为止,我尝试了以下
第 1 步:在 Docker 中安装 Postgres(在 Hyper-V 上运行的 Ubuntu)
sudo docker run -p 5432:5432 --name pg_test -e POSTGRES_PASSWORD=admin -d postgres
第二步:创建数据库
docker exec -it pg_test bash
psql -U postgres
create database mytestdb
第三步:获取ip地址
sudo docker inspect pg_test | grep IPAddress
//returned with 172.17.0.2
第 4 步:pg_hba.conf
host all all 0.0.0.0/0 md5
第 5 步:当我尝试从 Windows PgAdmin 4 连接时,出现以下错误 -
备注 : 我也尝试过使用 UBUNTU VM IP 地址,但没有运气
最佳答案
您的情况是您尝试从另一个子网连接到 postgres,即如果您不使用桥接协议(protocol),则将 windows 子网连接到虚拟机管理程序子网。
所以案例1:
远程登录 192.168.0.10 5432
如果您已桥接并且您也可以 ping ping 服务器,请检查是否打开了 telnet 工作的端口。您需要确保在 postgres.conf 文件中
“收听地址”是“*”。仅此而已。
再次从 ubuntu 的操作系统级别运行命令
systemctl stop firewalld
停止防火墙,然后尝试连接。如果这可行,那么您需要使用以下命令在防火墙中打开端口:firewall-cmd --permanent --add-port 5432/tcp
我可以从你的 docker image 中看到 5432 已经打开。这更多的是端口映射和防火墙的东西。
关于windows - 从 Windows 10 PgAdmin 连接安装在 Hyper-V Ubuntu 中的 docker 中的 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59949864/