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

Jac*_*phy 8 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
Run Code Online (Sandbox Code Playgroud)

Web服务都使用Docker桥接虚拟网络相互通信batman.

networks:
  batman:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Grz*_*orz -3

我认为这应该是可能的:

  • 在同一 ( batman) 网络中添加一个带有 SSH 服务器的简单容器
  • 通过 SSH 隧道设置连接: SSH/SSL 隧道选项的屏幕截图
  • 配置您的连接,就像您在网络上一样(因此主机将是postgresAFAIR)