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

时间:2016-02-08 10:30:03

标签: postgresql docker virtualbox

我已经阅读了有关此问题的所有问题like this one,,但它没有帮助。

主机: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 个答案:

答案 0 :(得分:8)

我终于注意到在Kitematc的IP& “主页”选项卡上的“端口”部分未设置“访问URL”。

在Docker端口下,它显示' 5432 / tcp'

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

192.168.99.100:32768

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

仅供参考,即IP返回的IP相同:

docker-machine ip default

答案 1 :(得分:1)

如果从命令行运行容器,请改变运行命令,如下所示:

docker run -p 32768:5432 my-postgres

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