如何从docker访问外部mysql

如何从docker访问外部mysql

我在docker里面有一个springboot java应用程序需要访问外部mysql。

我该如何配置它? 是否可以在 Dockerfile 中定义它?

我现在正在使用 docker,所以我认为这应该是一个简单而常见的任务:)

当我运行应用程序时收到错误

2019-02-12 15:10:51,472 DEBUG [main] com.zaxxer.hikari.pool.HikariPool:HikariPool-1 - 无法从数据源获取连接 java.sql.SQLNonTransientConnectionException:无法与数据库服务器建立连接。尝试重新连接 3 次。放弃。

我的 Dockerfile

FROM openjdk:11.0.2-jre-slim
VOLUME /tmp
COPY target/app-0.4-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 9001/tcp

答案1

如果 mysql 服务器正在 docker 主机上运行,​​无论是在金属上还是在具有映射端口的另一个容器中,则可能是您的应用程序的配置仍在寻找 localhost 上的数据库服务器,该服务器在其容器内指向容器内的环回接口。

您可以使用特殊地址来解决这个问题:host.docker.internal 查看信息

相关内容