【问题标题】:Cannot connect to Postgres running in Docker from PGAdmin running on Windows Host无法从 Windows 主机上运行的 PGAdmin 连接到在 Docker 中运行的 Postgres
【发布时间】:2016-05-17 23:36:29
【问题描述】:

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

主机:Windows 10,运行 VirtualBox 和 PgAdmin。

我已经正确设置了 Docker 并且运行了一些容器没有问题。现在我尝试设置 Postgres。我尝试了两个:

1 https://hub.docker.com/r/paintedfox/postgresql/

2https://hub.docker.com/_/postgres/

两者都有同样的问题。当我尝试从 PgAdmin 连接时,它说服务器没有监听。

当我运行docker inspect postgres 时,我看到了

“网络设置”:{ “桥”: ””, "沙盒 ID": "6ad76f4d61017c44f814c5ec7ab9081a650d925a46c2b69902c4f0e5209076ce", “发夹模式”:假, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, “端口”:{ “5432/tcp”:空 }, "SandboxKey": "/var/run/docker/netns/6ad76f4d6101", “辅助IP地址”:空, “辅助 IPv6 地址”:空, "EndpointID": "3f14630554c972ac875cbb384725c6970d1d4d5acfba7cbc05e416b5b22f0056", “网关”:“172.17.0.1”, "全球IPv6地址": "", "GlobalIPv6PrefixLen": 0, "IP地址": "172.17.0.2",

我已尝试将该 IP 地址作为 PGAdmin 中的主机。

我尝试使用 -p 5432:5432 设置容器并连接为 127.0.0.1:5432。

我尝试在 VirtualBox 中为容器设置端口转发。

我也试过机器主机,如图Kitematic:192.168.99.100

【问题讨论】:

    标签: postgresql docker virtualbox


    【解决方案1】:

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

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

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

    192.168.99.100:32768

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

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

    docker-machine ip default
    

    【讨论】:

      【解决方案2】:

      如果你从命令行运行你的容器,改变你的运行命令如下:

      docker run -p 32768:5432 my-postgres
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-22
        • 2016-02-21
        • 1970-01-01
        相关资源
        最近更新 更多