如何使用DataGrip访问Docker虚拟网络后面的PostgreSQL实例?

时间:2017-09-11 20:28:42

标签: postgresql docker docker-compose

我有dockerized数据库微服务。我可以使用以下方法运行手动查询:

$ ssh user@foo.domain.com
$ docker exec -it postgres bash
docker$ psql -U postgres -h 127.0.0.1 -d postgres

Web服务使用Docker桥接虚拟网络batman进行相互通信。

networks:
  batman:
    driver: bridge

与PostgreSQL安全最佳实践保持一致 - 我将PostgreSQL端口5432暴露给foo.domain.com上的主机。只有同样位于“蝙蝠侠”中的兄弟姐妹容器。允许Docker网络连接到数据库。

在传统的DataGrip / PostgreSQL设置中,我会将ssh放入托管PostgreSQL的托管框中,并使用本地PostgreSQL客户端(规则来自:pg_hba.conf)。

Dockerized系统需要一个额外的步骤(exec)。

看到DataGrip似乎不允许使用带前缀的连接命令,如何使用DataGrip访问Docker虚拟网络后面的PostgreSQL实例?

1 个答案:

答案 0 :(得分:-2)

我认为这应该是可能的:

  • 在同一个(batman)网络中添加一个带有SSH服务器的简单容器
  • 通过SSH隧道设置连接: Screenshot of SSH/SSL tunnel option
  • 配置您的连接,就像您在网络上一样(因此主机为postgres AFAIR)