我正在Windows 10环境中工作。 我的Docker版本1.13.0,内部版本49bf474。
我有一个运行在Docker容器上的Spring Boot应用程序 我正在尝试从Spring应用程序访问MySQL的本地实例。我的MYSQL实例未在容器上运行。
我了解这是网络问题,已经尝试运行docker 使用以下命令:docker run -p 8282:8191 ami --network =“ host” 但没有成功。
有人可以帮我解决这个问题吗?
谢谢。
注意:我的Spring应用程序配置很好,因为我能够从容器连接AWS MSQL RDS服务器而没有任何问题。
2019-04-19 07:33:32.025 INFO 1 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3308 ms
2019-04-19 07:33:32.264 INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2019-04-19 07:33:33.422 ERROR 1 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/financedb
spring.datasource.username=****
spring.datasource.password=****
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
答案 0 :(得分:1)
适用于Windows的Docker使用vm运行Linux容器。因此,以net = host运行时,“本地主机”是虚拟机,而不是Windows计算机 您可以使用特殊的主机名作为MySQL主机
docker.for.win.localhost
这指向您的Windows计算机,您甚至可以在没有net = host的情况下运行。