java – 两个docker容器之间的通信问题

weixin_38058939 2019-09-12 02:14:02
我是docker的新手,我正在尝试将运行到我的boot-example docker容器中的spring boot app连接到运行到端口6603上的mymysql docker容器的mysql服务器,两者都运行在同一台机器上.事实是:如果我将我的spring-boot应用程序连接到mymysql docker容器以便与数据库通信,我没有错误,一切正常. 当我将我的spring启动应用程序移动到我的启动示例容器并尝试与我的mymysql容器进行通信(通过Hibernate)时,我收到此错误: 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 application.properties是: 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 它工作正常,直到我的春季启动应用程序在端口8082上的docker容器中运行(在正确构建docker镜像之后): docker run -it -p 8082:8083 boot-example
...全文
479 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38062190 2019-09-12
  • 打赏
  • 举报
回复
根据上述建议,Docker-compose是一种方式,但如果您不想使用compose / swarm模式. >使用docker network创建myNet,创建自己的网络>在创建的网络上部署容器 – 网络myNet>将spring.datasource.url更改为jdbc:mysql:// mymysql:6603 / mydockerdb 通过使用docker demon的DNS解析,容器可以相互发现,因此可以进行通信.[默认网桥不支持DNS.使用网桥的用户定义网络. 有关更多信息:https://docs.docker.com/engine/userguide/networking/

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧