【发布时间】:2017-11-30 23:17:00
【问题描述】:
我有一个在 Dockers 容器内运行的 Spring Boot 应用程序。该应用程序提供 REST 端点,可以使用 http://localhost:8080/endpoint 从主机成功调用。以前,当此应用程序在主机上而不是在 Docker 中运行时,我可以在应用程序中使用 jdbc:mariadb://localhost:3308/fi?user=userName&password=thePassword 调用本地 MariaDB。现在应用程序在 Dockers 中运行,连接返回错误:“无法连接到地址=(主机=本地主机)(端口=3308)(类型=主):连接被拒绝(连接被拒绝)”
建立连接的代码sn-p如下:
Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3308/fi?user=username&password=thePassword");
Statement stmt = connection.createStatement();
String query = "";
ResultSet rs = stmt.executeQuery("SELECT * ....;");
我已经发布了 8080 端口以接受来自主机的 REST 调用,并尝试发布或公开 3308 端口以允许进行数据库调用,但都没有帮助。
提前谢谢你!
【问题讨论】:
-
我建议你在另一个容器中运行你的数据库——这是 docker 建议的方式。
-
除了创建另一个容器并重新设置数据库之外,是否需要进行其他特殊更改以允许一个 docker 中的应用程序调用另一个 docker 中的数据库?
标签: mysql rest docker spring-boot mariadb