无法从运行在Windows主机上的PGAdmin连接到运行在Docker中的Postgres。

7
我已经阅读了所有关于这个问题的问题,像这样的一个,但是它没有帮助。
主机:Windows 10,运行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中为容器设置端口转发。

我还尝试使用Kitematic中显示的机器主机:192.168.99.100

2个回答

9

我终于注意到,在Kitematc的主页选项卡中的IP和端口部分,ACCESS URL未设置。

在Docker端口下,显示“5432 / tcp”

因此,我点击旁边的IP地址并进行了设置,现在显示:

192.168.99.100:32768

我将该IP和端口放入PGAdmin中,现在可以连接到容器。

提示:该IP与以下命令返回的IP相同:

docker-machine ip default

1
如果您从命令行运行容器,请将运行命令更改为以下内容:
docker run -p 32768:5432 my-postgres

现在您可以通过<mapped-ip>:32768连接到您的postgres(在我的情况下,映射的IP是192.168.99.100)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接