无法从 Windows 主机上的 PGAdmin 运行 连接到 Docker 中的 Postgres 运行
Cannot connect to Postgres running in Docker from PGAdmin running on Windows Host
我已经阅读了所有关于此的问题,like this one,但没有帮助。
主持人:Windows10,运行正在使用 VirtualBox 和 PgAdmin。
我已正确设置 Docker 并且 运行 一些容器没有问题。现在我尝试设置 Postgres。我试了两个:
1 https://hub.docker.com/r/paintedfox/postgresql/
2 https://hub.docker.com/_/postgres/
两者都有同样的问题。当我尝试从 PgAdmin 连接时,它说服务器没有监听。
当我运行docker inspect postgres
我看到
"NetworkSettings": {
"Bridge": "",
"SandboxID": "6ad76f4d61017c44f814c5ec7ab9081a650d925a46c2b69902c4f0e5209076ce",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"5432/tcp": null
},
"SandboxKey": "/var/run/docker/netns/6ad76f4d6101",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "3f14630554c972ac875cbb384725c6970d1d4d5acfba7cbc05e416b5b22f0056",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
我已经尝试将该 IP 地址用作 PGAdmin 中的主机。
我尝试使用 -p 5432:5432 设置容器并连接为 127.0.0.1:5432。
我尝试在 VirtualBox 中为容器设置端口转发。
机器host我也试过了,如Kitematic所示:192.168.99.100
我终于注意到在 Kitematc 中“主页”选项卡的“IP 和端口”部分未设置“访问”URL。
在 Docker 端口下显示“5432/tcp”
所以我点击旁边的 IP 地址并设置它,现在它显示:
192.168.99.100:32768
我将该 IP 和端口放入 PGAdmin,它现在可以连接到容器了。
仅供参考,IP 与返回的 IP 相同:
docker-machine ip default
如果您 运行 您的容器从命令行更改您的 运行-命令,如下所示:
docker run -p 32768:5432 my-postgres
现在您可以通过 <mapped-ip>:32768
连接到您的 postgres(在我的例子中,映射的 IP 是 192.168.99.100)
我已经阅读了所有关于此的问题,like this one,但没有帮助。
主持人:Windows10,运行正在使用 VirtualBox 和 PgAdmin。
我已正确设置 Docker 并且 运行 一些容器没有问题。现在我尝试设置 Postgres。我试了两个:
1 https://hub.docker.com/r/paintedfox/postgresql/
2 https://hub.docker.com/_/postgres/
两者都有同样的问题。当我尝试从 PgAdmin 连接时,它说服务器没有监听。
当我运行docker inspect postgres
我看到
"NetworkSettings": { "Bridge": "", "SandboxID": "6ad76f4d61017c44f814c5ec7ab9081a650d925a46c2b69902c4f0e5209076ce", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "5432/tcp": null }, "SandboxKey": "/var/run/docker/netns/6ad76f4d6101", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "3f14630554c972ac875cbb384725c6970d1d4d5acfba7cbc05e416b5b22f0056", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2",
我已经尝试将该 IP 地址用作 PGAdmin 中的主机。
我尝试使用 -p 5432:5432 设置容器并连接为 127.0.0.1:5432。
我尝试在 VirtualBox 中为容器设置端口转发。
机器host我也试过了,如Kitematic所示:192.168.99.100
我终于注意到在 Kitematc 中“主页”选项卡的“IP 和端口”部分未设置“访问”URL。
在 Docker 端口下显示“5432/tcp”
所以我点击旁边的 IP 地址并设置它,现在它显示:
192.168.99.100:32768
我将该 IP 和端口放入 PGAdmin,它现在可以连接到容器了。
仅供参考,IP 与返回的 IP 相同:
docker-machine ip default
如果您 运行 您的容器从命令行更改您的 运行-命令,如下所示:
docker run -p 32768:5432 my-postgres
现在您可以通过 <mapped-ip>:32768
连接到您的 postgres(在我的例子中,映射的 IP 是 192.168.99.100)