Docker 与 IPTABLES 混淆?

Docker 与 IPTABLES 混淆?

我遇到了docker问题

docker:守护进程的错误响应:驱动程序无法在端点容器名称(containerhash)上编程外部连接:(iptables 失败:iptables --wait -t filter -A DOCKER!-i docker0 -o docker0 -p tcp -d 172.17.0.4 --dport 28967 -j ACCEPT:iptables:没有该名称的链/目标/匹配。

在启动日志中我看到

systemd-udevd[4611]: veth9c4b829: 无法获取链接配置: 没有这样的设备

有 4 个网络端口,似乎每个端口都是随机的。这个想法是为每个容器设置一个来自不同 /24 子网的独立 IP,但看起来 docker 无法同时为所有容器成功生成外部访问。请问有什么建议吗?路由已完成,端口已打开,并且不同网络端口上每个网络的每个 IP 都已 ping。这只是 docker 以某种奇怪的方式干扰 iptables。重置防火墙无济于事。

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X

每个端口上还有来自不同 /64 网络的 IPv6。

如果需要,可以发布 netplan(网络配置)和 rc.local(在启动时添加路由)。

相关内容