You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2 Ubuntu18中已安装criu但docker checkpoint提示找不到的问题

问题解决:WSL2中Docker Checkpoint提示CRIU找不到

核心原因

你在WSL中安装的CRIU无法被Docker Desktop的containerd runtime访问——因为Docker Desktop的容器实际运行在Windows侧的轻量虚拟机中,而非WSL环境内部,runc执行时的PATH不包含WSL里的/usr/sbin路径。

解决方案:切换到WSL内部的Docker引擎

放弃Docker Desktop的跨WSL集成,在Ubuntu 18.04中单独安装Docker CE,让容器直接运行在WSL环境内,这样runc就能调用本地安装的CRIU:

  1. 禁用Docker Desktop的WSL集成
    打开Docker Desktop设置 → 「Resources」→「WSL Integration」,关闭对应Ubuntu 18.04发行版的集成开关,重启Docker Desktop生效。

  2. 在WSL Ubuntu 18.04中安装Docker CE
    执行以下命令:

    # 卸载旧版本Docker(如果有)
    sudo apt-get remove docker docker-engine docker.io containerd runc
    
    # 设置Docker官方源
    sudo apt-get update
    sudo apt-get install ca-certificates curl gnupg lsb-release
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # 安装Docker CE
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
    # 将当前用户加入docker组(避免每次用sudo)
    sudo usermod -aG docker $USER
    
  3. 重启WSL并验证
    退出WSL终端,重新打开后启动Docker服务:

    sudo systemctl start docker
    sudo systemctl enable docker # 设置开机自启
    

    验证Docker运行正常:docker run hello-world,之后再执行你之前的checkpoint命令即可正常调用CRIU。

补充说明

如果必须使用Docker Desktop,需要将WSL中的/usr/sbin/criu复制到Windows侧containerd runtime能访问的路径,但该路径属于Docker Desktop的内部虚拟机,操作复杂且易随版本变化,因此优先推荐上述切换到WSL本地Docker引擎的方案。

内容的提问来源于stack exchange,提问作者cookie-LGO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 15:38:26