关于wsl2 安装docker后无法启动的问题

本文介绍了解决WSL中使用service启动服务失败,涉及iptables错误的解决方案。通过替换iptables为iptables-legacy,开启IPv4转发,并重启WSL以修复服务启动问题。

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

wsl中是不能用systemctl来进行启动服务的,只能用service
但是service启动失败
看了下日志

time="2022-07-27T21:23:46.131907580+08:00" level=info msg="stopping healthcheck following graceful shutdown" module=libcontainerd
failed to start daemon: Error initializing network controller: error obtaining controller instance: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain:  (iptables failed: iptables --wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN: iptables v1.8.7 (nf_tables):  RULE_APPEND failed (No such file or directory): rule in chain DOCKER-ISOLATION-STAGE-1
 (exit status 4))

说的是iptables的问题,这个之前在github中提到过#1105
解决方法如下:
首先将iptables用iptables-legacy替换

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

然后,开启ipv4的包转发功能

sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

最后在powershell中重启wsl

wsl --shutdown

这样再打开wsl之后就能顺利启动了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值