Centos7 Docker容器启动报错:WARNING: IPv4 forwarding is disabled. Networking will not work

简介: Centos7 Docker容器启动报错:WARNING: IPv4 forwarding is disabled. Networking will not work

问题

最近使用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 run -p 192.168.216.1:8080


目录
相关文章
|
5月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
905 108
|
3月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
3月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
566 5
|
3月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
329 6
|
5月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
356 16
|
5月前
|
安全 持续交付 Docker
Docker:重塑现代软件交付的容器引擎
Docker:重塑现代软件交付的容器引擎