Windows 10 中安装了 WLS2,安装使用 docker。
Microsoft Store 中默认的 Debian 版本是 11。
但是在启动docker服务时没有反应。
sudo service docker start
查看日志(cat /var/log/docker.log):
关键几行提示如下:
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))
1 将iptables用iptables-legacy替换:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
2 开启 ipv4 包转发功能:
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
3 重启 WSL2
wsl --shutdown
4 重新进入系统,可以顺利启动 docker了。
参考:https://www.cnblogs.com/thepoy/p/16004037.html