wsl中迁移ubuntu24.04后docker后无法启动的问题

wsl中迁移ubuntu24.04后docker后无法启动的问题

发生原因

我将外网wsl2中的Ubuntu24.04迁移到内网(无网络)电脑中,发现原本安装的docker无法启动,

在使用 apt-get install docker-ce docker-ce-cli containerd.io重新安装后依然不行

NOTE:迁移后软件会失去注册信息,运行会提示命令未注册,所以需要重新安装。其实系统中已经包含了相关安装包,所以不会联网下载

原因

查看Docker的日志vim /var/log/docker.log显示如下的错误

shell 复制代码
time="2025-04-09T10:29:59.904691194+08:00" level=info msg="Loading containers: start."
time="2025-04-09T10:30:00.055889722+08:00" level=info msg="stopping event stream following graceful shutdown" error="<nil>" module=libcontainerd namespace=moby
time="2025-04-09T10:30:00.056182637+08:00" level=info msg="stopping healthcheck following graceful shutdown" module=libcontainerd
time="2025-04-09T10:30:00.056254606+08:00" level=info msg="stopping event stream following graceful shutdown" error="context canceled" module=libcontainerd namespace=plugins.moby
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register "bridge" driver: failed to add jump rules to ipv4 NAT table: failed to append jump rules to nat-PREROUTING:  (iptables failed: iptables --wait -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER: Warning: Extension addrtype revision 0 not supported, missing kernel module?
iptables v1.8.10 (nf_tables):  CHAIN_ADD failed (No such file or directory): chain PREROUTING
 (exit status 4))

原因是由于迁移后ubuntu系统使用了iptables-nft,而WSL2不支持导致的。

修复

修改为iptables-legacy即可

shell 复制代码
 root@DESKTOP-5DTRJV0:/home/friday/apt-offline# update-alternatives --config iptables
There are 2 choices for the alternative iptables (providing /usr/sbin/iptables).

  Selection    Path                       Priority   Status
------------------------------------------------------------
* 0            /usr/sbin/iptables-nft      20        auto mode
  1            /usr/sbin/iptables-legacy   10        manual mode
  2            /usr/sbin/iptables-nft      20        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode
root@DESKTOP-5DTRJV0:/home/friday/apt-offline# service docker start
 * Starting Docker: docker                                               [ OK ]                                                                                                                                              
root@DESKTOP-5DTRJV0:/home/friday/apt-offline# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
相关推荐
三十_5 小时前
【Docker】学习 Docker 的过程中,我是这样把镜像越做越小的
前端·后端·docker
Lin_Aries_04216 小时前
使用阿里云容器镜像服务 ACR
linux·阿里云·docker·云原生·centos·云计算
鳄鱼杆15 小时前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
逍遥浪子~16 小时前
docker实践(一)
运维·docker·容器
AI云原生17 小时前
如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器的教程
运维·docker·云原生·容器·serverless·firefox·kubeless
❀͜͡傀儡师19 小时前
Docker部署搜索引擎SearXNG
运维·docker·容器·searxng
虎头金猫19 小时前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
janthinasnail1 天前
使用Docker搭建MaxKB智能体平台
docker·maxkb
计算机小手1 天前
高效 P2P 文件传输工具:FileSync 利用 WebRTC 技术实现极速安全传输
经验分享·docker·webrtc·开源软件
笨鸟贤妃1 天前
Ubuntu 22.04 安装 Docker & Compose 最新最简单完整指南
ubuntu·docker·compose