我是一名新手,正在学习Docker,并尝试将我的运行中的Spring Boot应用连接到在同一物理机上运行的端口为6603的mymysql Docker容器中的MySQL服务器。事实上,如果我将我的Spring Boot应用连接到mymysql Docker容器以便与数据库通信,我不会遇到任何错误,一切都正常。
但是,当我将我的Spring Boot应用程序移动到boot-example容器中并尝试通过Hibernate与mymysql容器通信时,我会遇到以下错误:
2018-02-05 09:58:38.912 ERROR 1 --- [ main] o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
com.mysql.jdbc.exceptions.jdbc4.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.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_111]
我的Spring Boot应用程序属性文件如下:
server.port=8083
spring.jpa.hibernate.ddl-auto=create-drop
spring.datasource.url=jdbc:mysql://localhost:6603/mydockerdb
spring.datasource.username=root
spring.datasource.password=mypassword
我的Spring Boot应用程序在正确构建Docker镜像后,在端口8082上运行时出现问题:
docker run -it -p 8082:8083 boot-example
--net=host
时,Docker网络不会以相同的方式工作。将其视为在主机机器上运行的另一个进程,没有任何隔离的网络。 - vivekyad4v