Centos7中Docker容器启动报错WARNING怎么办

这篇文章主要介绍了Centos7中Docker容器启动报错WARNING怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联建站是一家集网站建设,闵行企业网站建设,闵行品牌网站建设,网站定制,闵行网站建设报价,网络营销,网络优化,闵行网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。


 

问题

最近使用Docker容器部署Jar包的时候,数据库一直连不上:

2021-01-08 02:59:31.354 ERROR [eate-1123226989] com.alibaba.druid.pool.DruidDataSource   2507 - create connection SQLException, url: jdbc:MySQL://***/***?autoReconnect=true&useUnicode=true&allowMultiQueries=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=CTT&useAffectedRows=true, errorCode 0, state 08001
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
	……
	com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1572)
	……
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
	……

被这个问题困扰了很久,解决问题的方向一直是容器的镜像。

直到今天,在大佬的帮助下,发现启动容器的时候有一行不起眼的提示:

WARNING: IPv4 forwarding is disabled. Networking will not work

再结合前面的:

java.net.ConnectException: Connection timed out (Connection timed out)

淦!

问题出在了网络上!

IPv4转发已禁用。网络将不起作用。

解决

添加IPv4转发配置

  • vi /etc/sysctl.conf 或者 vi /usr/lib/sysctl.d/00-system.conf

  • 添加一行配置 net.ipv4.ip_forward=1

  • 使用 systemctl restart network 重启 network服务

  • 使用sysctl net.ipv4.ip_forward查看是否修改成功 ,如果返回为 net.ipv4.ip_forward = 1 则表示修改成功

  • 重启Docker容器,问题解决

启动容器时指定IP

还可以在启动容器时通过 -p 参数指定IP(IP为IPv4 地址)的方式来解决,例如: docker -p 192.168.216.1:8080

感谢你能够认真阅读完这篇文章,希望小编分享的“Centos7中Docker容器启动报错WARNING怎么办”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


分享文章:Centos7中Docker容器启动报错WARNING怎么办
文章分享:http://hbruida.cn/article/ghgdjj.html