Docker启动报错:No chain/target/match by that name 处理

一、问题描述

某次OS升级重启后,发现docker redis实例无法启动,报错如下:

在这里插入图片描述

Error response from daemon: driver failed programming external connectivity on endpoint vpm.redis.2 (f4b70fef65000bcacb574ee59e65d9b7a25f2abfa5dec0be9b7421b6c4a985e0):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.1.10.3:6379 ! -i docker0: iptables: No chain/target/match by that name.(exit status 1))
Error: failed to start containers: 00cb13547452

现场环境:BCLinux 8.2

二、处理过程

1)由上报错可知是iptables的问题,现场firewall已禁用;手动执行规则添加命令:

iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.1.10.3:6379 ! -i docker0

报错同上:iptables: No chain/target/match by that name.

2)检查iptables的nat表,发现根本没有docker链

iptables -nL -t nat   //输出如下Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         Chain INPUT (policy ACCEPT)
target     prot opt source               destination         Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

3)我们需要手动添加DOCKER链到NAT表中:

iptables -t nat -N DOCKER   //创建 iptables 中 nat 表中的 docker 链,执行此命令后,docker 链就会被创建#重新执行上述容器的docker链添加命令,实际容器启动时会自动添加
iptables -t nat -A PREROUTING -i eth0 -j DOCKER  //将所有来自 docker0 虚拟网卡的数据包转发到 docker 链
iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.1.10.3:6379 ! -i docker0   //在 docker 链中添加规则:将除docker0口的所有数据包转发到172.1.10.3地址的6379端口redis上
#验证
iptables -t nat -L DOCKER

4)再次重启redis容器,执行:docker start contained_id,报错:

Error response from daemon: driver failed programming external connectivity on endpoint vpm.redis.2 (38aa4d7de267a30e436881f97bc75d1e564649d5e942203297a2563):  (iptables failed: iptables --wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 172.1.10.3 --dport 6379 -j ACCEPT: iptables: No chain/target/match by that name.(exit status 1))
Error: failed to start containers: 00cb13547452#同上,还需要在 filter表创建DOCKER链
iptables -t filte -N DOCKER#将发往而非来自docker0 接口的数据包发往redis,即允许来自 docker0 接口以外的 TCP 数据包访问 172.1.10.3 地址的 6379 端口,允许外部访问 Docker 容器中的 Redis 服务
iptables --wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 172.1.10.3 --dport 6379 -j ACCEPT

5)再次重启redis容器,正常

iptables -t nat -L  //输出如下
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         Chain INPUT (policy ACCEPT)
target     prot opt source               destination         Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  tcp  --  172.17.0.3           172.1.10.3           tcp dpt:redisChain OUTPUT (policy ACCEPT)
target     prot opt source               destination         Chain DOCKER (0 references)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             anywhere             tcp dpt:redis to:172.1.10.1:6379
DNAT       tcp  --  anywhere             anywhere             tcp dpt:redis to:172.1.10.3:6379

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/340371.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot中使用SpringRetry实现重试机制(重试调用第三方API)

场景 SpringbootFastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文): SpringbootFastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文)_fastjson 发送http请求 接收实体,出现日期转换异常-CSDN博客 在调用…

Fluids —— Whitewater (SOP)

目录 Whitewater Lifecycle Workflow Whitewater source Deformation sources Visualizing whitewater Whitewater solver Wind Foam erosion Repellants Whitewater postprocess 基于SOP的白水是对SOP FLIP工作流的增强;该系统与规模无关,无需…

XCTF:CatCatCat[WriteUP]

从题目中下载到一张图片和一个txt文件 编码的开头是:U2FsdGVkX1所以是rabbit加密 尝试使用密钥:91 密码不对,无法解密所以从图片下手 使用010Editor搜索图片文本内容 尝试搜索password、flag等敏感字体 直接拿到rabbit解密需要的密钥是&am…

facebook广告的基础知识与类型

Facebook广告是在Facebook平台上展示的一种数字广告形式,它允许广告主通过定位特定的受众群体来推广他们的产品、服务或品牌。以下是一些关于Facebook广告的基础知识: 支持Facebook广告的卡、556150、532959,点击获取 广告形式: …

【开源项目】轻量元数据管理解决方案——Marquez

大家好,我是独孤风。 又到了本周的开源项目推荐。最近推荐的元数据管理项目很多,但是很多元数据管理平台的功能复杂难用。 那么有没有轻量一点的元数据管理项目呢? 今天为大家推荐的开源项目,就是一个轻量级的元数据管理工具。虽然…

STL之list

目录 list定义和结构 list容器模板接受两个参数: list容器的特点 双向性 动态大小 不连续存储 实例 代码输出 需要注意的点 list常用函数 代码示例 list定义和结构 list的使用频率不高,在做题时极少遇到需要使用list的情景。 list是一种双向…

SpringBoot用MultipartFile.transferTo传递相对路径的问题

问题描述: 打算给自己的项目添加一个上传文件保存功能,于是我使用MultipartFile.transferTo()来完成这个功能,由于我的项目要部署到服务器,所以我使用了相对路径把上传的文件保存到当前项目的工作目录下,但是报错了&am…

软件测试|探索Python中获取最高数值的几种方法

前言 在数据分析、统计和编程领域,经常会遇到需要从一组数值中找出最高数值的情况。Python 作为一门功能丰富的编程语言,提供了多种方法来实现这一目标。在本文中,我们将探索几种获取最高数值的方法,帮助大家在不同情况下选择最适…

X3En【禾川】

地址: P9-00 波特率:【005】 故障码:

使用python读取yaml文件数据

使用python读取yaml文件: yaml文件数据:data.yaml login_data:url: http://www.baidu.comcase1:user1: password1: 12345errorText: 请输入用户名case2:user2: adminpassword2: errorText: 请输入密码case3:user3: adminpassword3: 123456errorText: 登…

0111qt

实现闹钟,并播报懒虫...~ daytest.pro: QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (th…

Spring Security介绍

一、Spring Security: 1、简介:Spring Security 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(A…