要让本地的容器运行的应用程序连接到本机上的PostgreSQL数据库,可以使用以下步骤:
-
确保本机上已经安装并运行了PostgreSQL数据库。可以使用psql命令行工具或其他可视化工具来管理和连接到本机上的数据库。
-
在应用程序的配置文件中,将数据库连接配置为连接到本机上的PostgreSQL数据库。通常,你需要指定以下连接参数:
- 主机名:通常是
localhost
或127.0.0.1
,表示本机。 - 端口号:默认情况下,PostgreSQL使用5432端口。
- 数据库名称:你要连接的数据库的名称。
- 用户名和密码:用于连接到数据库的用户名和密码。
例如,应用程序配置文件中的数据库连接配置如下所示:
spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase spring.datasource.username=myuser spring.datasource.password=mypassword
请确保将上述配置中的
mydatabase
替换为要连接的实际数据库名称,myuser
和mypassword
替换为实际的数据库用户名和密码。 - 主机名:通常是
-
在本地运行的Docker容器中,确保应用程序可以访问到本机上的PostgreSQL数据库。默认情况下,Docker容器与本机共享网络,并且可以通过
localhost
或127.0.0.1
访问本机上的服务。因此,可以在容器中使用与本机相同的数据库连接配置。如果在容器中使用了端口映射(例如将容器的8080端口映射到本机的8080端口),则需要将数据库连接配置中的主机名更改为本机的IP地址。你可以使用
docker.for.mac.host.internal
或docker.for.win.localhost
作为主机名,这些是Docker Desktop在Mac和Windows上提供的特殊主机名,用于访问本机的服务。例如,如果在容器中使用了端口映射,并且将容器的8080端口映射到本机的8080端口,应用程序配置文件中的数据库连接配置如下所示:
spring.datasource.url=jdbc:postgresql://docker.for.mac.host.internal:5432/mydatabase spring.datasource.username=myuser spring.datasource.password=mypassword
请确保将上述配置中的
mydatabase
替换为你要连接的实际数据库名称,myuser
和mypassword
替换为实际的数据库用户名和密码。
通过以上步骤,你的本地容器中的应用程序应该能够连接到本机上的PostgreSQL数据库。确保数据库连接配置正确,并且本机上的PostgreSQL数据库正在运行。