【发布时间】:2021-04-03 18:45:44
【问题描述】:
我正在容器化数据库为 Mysql-8 的 spring-boot 应用程序。
数据库托管在不同的机器上。
我们想从基于容器的服务连接它,但无法连接它。
机器的IP在Mysql中配置为允许连接。
docker 端是否需要任何设置以允许通信?或者 Mysql 端需要进行任何更改?
当我从我的机器运行服务以连接到数据库时,同样的事情正在工作。
任何输入,指针都非常感谢。
所涉及的配置和步骤是:
1.pom.xml 更改为创建spring-boot 服务的镜像。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<image>
<name>abc/uvw-${project.artifactId}:${project.version}</name>
</image>
<pullPolicy>IF_NOT_PRESENT</pullPolicy>
</configuration>
</plugin>
- 根据上述更改构建映像。
spring-boot:build-image
- jdbc.properties 文件。 wsnw-pc3 是网络中托管 DB 的机器。
jdbc.driverClassName=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://wsnw-pc3:3306/xxxx?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true jdbc.username=<username> jdbc.password=<password>
- Docker 撰写文件更改
version: '3.8' services: myservice: image: abc/uvw-myservice:1.0 deploy: resources: limits: memory: 700m ports: - "8080:8080"
谢谢,
阿图尔
【问题讨论】:
-
您是否能够从您的主机环境(而不是 Docker 环境)连接到远程 MySQL 数据库?
-
是的,我是@jeroen
-
将你的 spring 应用程序 docker 添加到主机。 --network=host in docker run 或 docker network connect host
-
@Atul 是否可以发布您在本地使用的 docker 命令或 docker-compose 配置以将容器连接到远程数据库?
-
@Jeroen van der Laan 添加了所需信息。如有任何需要,请告诉我。
标签: java mysql spring-boot docker docker-compose