首页 > 其他分享 >记录一次修改网卡配置,导致的docker内服务无法访问

记录一次修改网卡配置,导致的docker内服务无法访问

时间:2022-10-10 14:22:46浏览次数:61  
标签:服务 IP 无法访问 开启 网卡 转发 docker 重启

机器上的docker内部署的服务无法访问,起初以为是防火墙,一查并没有开,然后也顾不上找问题了,先处理吧,就试着把docker服务重启下,然后就没有然后了,一切正常了,找找原因吧。

从资料查询得知,Docker与宿主机的端口映射是通过iptables实现的,容器启动时会在iptables中添加DOCKER链和nDNAT规则

简单来了解一下,查看一下nat表的DOCKER

1 $ sudo iptables -t nat -nvL DOCKER

 

 

从图中可以看到有多条DNAT规则,规则将宿主机9000端口的报文转发到172.17.0.2的9000端口上,而172.17.0.2是分配给docker监控服务容器的ip(可以通过docker inspect 容器ID命令查看)

而这个DNAT规则需要宿主机开启内核IP转发功能,所以IP转发未开启会导致服务访问失败。

问题的根源找到了,但是产生的原因还没找到。

为什么之前没有手动开启IP转发时DOCKER服务依然能正常运行?

这是因为Docker daemon启动时会检查IP_FORWARD是否开启,如果未开启则临时开启,因为是临时开启所以在network服务重启后就会失效。服务器断电重启后network服务自然会重启,就有可能导致IP_FORWARD失效。一般docker服务正常运行一段时间后却突然访问不了,大不多是因此引起的,可以从这里开始排查。

想起前一日xxl定时任务在执行批量给企业微信推送消息时,发现企业微信的域名无法正常解析,然后就一顿度娘和谷哥,最终方案就是把服务器的DNS地址从114换成了谷哥的8,然后重启网卡后一切正常。其中这重启网卡,是不是这个操作导致的!

自己又重启的试了试,果然不能访问了,查看IP转发是否开启

 sysctl net.ipv4.ip_forward

 

 结果是0,未开启,开启应该是1.

行吧,那就先启动一下:

1 echo 'net.ipv4.ip_forward = 1' | sudo tee -a /usr/lib/sysctl.d/50-default.conf

重启network服务

1 systemctl restart network

服务正常,查看IP转发是否开启

 

已开启,自此服务一切恢复正常,这也是我使用docker这5来年头一次遇见,记录一下。

标签:服务,IP,无法访问,开启,网卡,转发,docker,重启
From: https://www.cnblogs.com/xingbo/p/16775559.html

相关文章

  • Docker 部署 Kibana
    Docker部署Kibana本篇主要介绍使用Docker部署kibana用于操作Elasticsearch使用.1.前置准备1.1Elasticsearch准备可以先准备一个Elasticsearch服务......
  • 15、docker
    15.0、服务器使用说明:服务器名称ip地址controller-node1172.16.1.9015.1、docker介绍:1、Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。2、Docker......
  • Docker入门与进阶(上)
    Docker入门与进阶(上)作者刘畅时间2020-10-17   目录​​1Docker核心概述与安装 1​​​​1.1为什么要用容器 1​​​​1.2docker是什么 1​​​​1.3docker设计......
  • flink集群(docker版)
    flink集群(docker版)​  时间2021-06-09   目录​​1环境说明 ​​​​2部署nfs ​​​​2.1安装nfs软件包 ​​​​2.2配置参数,映射checkpoints存储目录 ​​​​2......
  • Docker学习(二)常用命令
    一、帮助启动类命令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestartdocker查看docker状态:systemctlstatusdocker......
  • DOCKER 部署 CANAL
    DOCKER部署CANAL1、MYSQL开启binlog前提MYSQL已经安装完成,canal采用读取Mysql的binlog日志来实现数据同步,需要修改mysql配置为难my.cnf,并将binlog的格式模式设置为ROW,其......
  • linux网卡绑定bond
     1.什么是bond网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡。在应用部署中是一种常用的技术。2.bond的模式种类常见的bond......
  • Docker的基本使用
    Docker的基本使用Docker的使用个人觉得就是有便捷性和隔离性,它十分便捷的给你布置出了一个你想要的环境,并且多个相同环境的不同版本之间可以做到隔离,就可以无缝切换。Doc......
  • Docker | 容器数据卷
    目录什么是容器数据卷数据的覆盖问题使用数据卷方式一:直接使用命令挂载-v测试挂载卷1、在容器内部修改文件同步到Linux主机上2、同样地,在Linux上修改挂在卷文件可以同步到......
  • IDEA的Docker插件实战(Docker Image)
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本文是《IDEA的Docker插件实战》系列的第二篇,IDEA的Docker插件......