我创建了一个Docker容器,如下所示:
docker run -e POSTGRES_USER=docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=docker library/postgres
现在我想将它连接到Datagrip以进行查询。当我试图在Datagrip中建立一个连接时,它失败了。DataGrip连接失败错误 I从inspect container <container_id>获取主机ip
结果是172.17.0.2在5432港。
请参阅图片以供参考。然而,当我尝试连接到容器的配置设置时,连接仍然失败。
有人知道怎么做吗??
发布于 2018-01-04 23:03:03
DataGrip未能连接到运行Postgres的容器的原因是您没有公开容器的任何端口,在本例中是5432。
获取的容器的IP地址,即172.17.0.2,是容器在码头容器网络中的内部IP地址,在您的例子中,bridge是容器连接到的默认网络,如果您没有指定docker run的--network={NETWORK}选项的话。
尽管有一些方法可以找到容器的“真实”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选项。
之后,您应该能够通过指定DataGrip作为主机来连接到您的容器。请看这张截图以供参考。
发布于 2022-06-09 12:13:35
好吧,所以我和这个斗争了好几天,什么也没做。
如果您无法通过本地主机从Datagrip连接到您的PostgreSQL数据库,并且您确信一切都是应该的,
Windows PC
现在,您可以连接到localhost:5432
https://stackoverflow.com/questions/47825130
复制相似问题