Postgres Docker的DataGrip连接失败

时间:2017-12-15 02:52:02

标签: postgresql docker

我按如下方式创建了一个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时,连接仍然失败。

有谁知道如何去做?

1 个答案:

答案 0 :(得分:10)

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

您获取的容器的IP地址,即172.17.0.2,是容器在Docker容器网络中的内部IP地址,在您的情况bridge中,如果您没有,则容器连接到的默认网络不要指定--network={NETWORK}的{​​{1}}选项。

虽然有办法找到容器的“真实”IP地址,但它们总是太复杂,无法满足您的需求。 DataGrip连接到Postgres容器的最简单方法是发布您的端口docker run并将其映射到主机的同一端口(或任何其他可用端口),方法是:

5432

使用docker run -e POSTGRES_USER=docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=docker -p 5432:5432 library/postgres选项。

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