WSL2-Debian启动docker(failed to start daemon: Error initializing network controller: error obtaining)

这篇博客介绍了在Win11环境下使用WSL2安装Ubuntu22.04LTS时,遇到Docker启动失败的问题,错误涉及iptables。解决方案包括用iptables-legacy替换iptables,并开启IPv4包转发功能,通过编辑/etc/sysctl.conf文件实现。按照这些步骤操作后,问题可以得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

原文地址
win11 安装Ubuntu 222.04LST 。WSL2-Debian启动docker报错(failed to start daemon: Error initializing network controller: error obtaining…)


问题描述

Tips:sudo service docker start 启动日志在/var/log/docaker.log。

$ cat /var/log/docker.log
...
Sep 13 20:47:37 xxx dockerd: failed to start daemon: Error initializing network controller: error
 obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N D
OCKER: iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to ins
mod?)

原因分析:

可以看到是 iptables 的问题,此问题在其 github 仓库中有人提出过#1105,幸运的是,这个问题正好能被简单地解决。


解决方案:

  1. 首先,将iptables用iptables-legacy替换:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
  1. 开启 ipv4 的包转发功能:
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf`
  1. 退出重新启动ubuntu 22.04 LST即可。

原文地址

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值