【发布时间】:2021-04-23 17:32:25
【问题描述】:
我有 2 个 Spring Boot 应用程序在 docker 中运行。
这两个应用程序都连接到在另一台机器上运行的 Postgres 数据库。
在将应用程序放入容器之前,我曾经从 localhost 创建一个 ssh 隧道,以连接另一台包含运行此命令的数据库的机器:
> ssh -vnN *user*@*host* -p *port* -L 5433:user-host.local:5432
这样,我可以在我的 application.properties 文件中设置 localhost:5433 来连接远程数据库,该数据库在端口 5432 中运行。
这是来自 SpringBoot 应用程序的 application.properties 文件:
>spring.datasource.url = jdbc:postgresql://localhost:5433/*database*...\
>spring.datasource.username = *user*\
>spring.datasource.password = *password*
但是现在,在容器中运行同一个应用程序,我知道 localhost 指的是容器 ip。而且我无法连接到远程数据库。
我不知道如何使用 SSH 隧道访问同一个远程数据库。
我该怎么做?
【问题讨论】:
标签: java spring database spring-boot docker