Docker 警告:使用主机网络模式时,已发布的端口将被丢弃
我有一个Springboot应用程序,我已经Dockerized了。我将其暴露在端口上,并且可以按预期访问它。8081
http://<ipaddress>:8081
问题
Docker 容器中的 Springboot 应用需要连接到同一主机(不在容器中)上的 postgres 数据库,但看起来它没有授予对主机网络的访问权限。
连接到本地主机:5432 被拒绝
Docker cmd:
docker run -t --rm -d -p 8081:8081 --name nexct-approval-service-container nexct-approval-service-image
所以我已经阅读了为了连接到网络,你可以使用:
--network host
但是,然后它停止允许访问应用程序本身(端口 8081):
WARNING: Published ports are discarded when using host network mode
问题
如何允许访问端口 8081 上的 SpringBoot 应用程序,并允许 Springboot 应用程序访问主机网络,以便它可以连接到数据库?
更新
我的数据库连接是在 Spring Boot 中定义的:
应用程序.属性
spring.datasource1.driver-class-name=org.postgresql.Driver
spring.datasource1.jdbc-url=jdbc:postgresql://localhost:5432/pims
spring.datasource1.username=postgres
spring.datasource1.password=
多数据库配置.java
@Configuration
@ComponentScan(basePackages = "com.nexct")
public class MultipleDBConfig {
@Bean(name = "datasource1")
@ConfigurationProperties("spring.datasource1")
@Primary
public DataSource dataSource1(){
return DataSourceBuilder.create().build();
}
@Bean(name = "datasource2")
@ConfigurationProperties("spring.datasource2")
public DataSource dataSource2(){
return DataSourceBuilder.create().build();
}
}