我已经阅读了有关此问题的所有问题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
所示答案 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)