【问题标题】:DataGrip connection failed with Postgres Docker与 Postgres Docker 的 DataGrip 连接失败
【发布时间】:2018-01-05 07:03:03
【问题描述】:

我创建了一个 Docker 容器如下:

docker run -e POSTGRES_USER=docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=docker library/postgres

我现在想将它连接到 Datagrip 以进行查询。当我尝试在 Datagrip 中设置连接时,它失败了。 DataGrip Connection Failed Error 我从inspect container <container_id>获取了主机ip

结果是 172.17.0.2 端口 5432

请参阅图片以供参考。 Config Settings for the container 但是,当我尝试连接到 DataGrip 时,连接仍然失败。

有人知道怎么做吗?

【问题讨论】:

  • 您确定连接失败不是由于凭据错误造成的吗? DatGrip 在哪里运行?您是否尝试过使用psql 从命令行测试连接?

标签: postgresql docker


【解决方案1】:

DataGrip 无法连接到运行 Postgres 的容器的原因是您没有公开容器的任何端口,在本例中为 5432

您获取的容器的 IP 地址,即172.17.0.2,是容器在 docker 容器网络中的内部 IP 地址,在您的情况下为 bridge,如果您未指定 @,则容器连接到的默认网络987654325@docker run的选项。

虽然有一些方法可以找到容器的“真实”IP 地址,但它们总是过于复杂而无法满足您的目的。 DataGrip 连接到 Postgres 容器的最简单方法是发布您的端口 5432 并将其映射到主机的同一端口(或任何其他可用端口),方法是运行:

docker run -e POSTGRES_USER=docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=docker -p 5432:5432 library/postgres

带有-p 5432:5432 选项。

之后,您应该能够通过将 localhost 指定为主机来从 DataGrip 连接到您的容器。 Please see this screenshot for reference.

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 2022-01-07
    • 2020-08-21
    • 2019-03-05
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多