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

WSL2(Windows11)中Ubuntu启动Docker遇cgroup挂载错误

解决WSL2 Ubuntu下Docker启动时的cgroup挂载错误

问题背景

Windows 11的WSL2环境中,Ubuntu 20.04/22.04版本启动Docker时出现大量cgroup挂载错误,重装系统和Docker无法解决,推测由Windows更新引发。错误示例:

❯ sudo service docker start
[sudo] password for anat:
mount: /sys/fs/cgroup/cpuset: wrong fs type, bad option, bad superblock on cgroup, missing codepage or helper program, or other error.
mount: /sys/fs/cgroup/cpu: wrong fs type, bad option, bad superblock on cgroup, missing codepage or helper program, or other error.
# 其余cgroup子系统错误省略
 * Starting Docker: docker                                                                                                 [ OK ]

核心原因

Windows更新后WSL2默认启用cgroup v2,但部分Ubuntu版本的Docker服务仍尝试挂载cgroup v1子系统,导致版本冲突报错。

解决方案

方法1:强制WSL2使用cgroup v1

  1. 在Windows系统中,创建或修改%USERPROFILE%\.wslconfig文件,添加以下内容:
[wsl2]
kernelCommandLine = cgroup_no_v1=all
  1. 关闭所有WSL实例:
wsl --shutdown
  1. 重新启动Ubuntu,再启动Docker服务:
sudo service docker start

方法2:配置Docker适配cgroup v2

  1. 在Ubuntu中创建Docker配置目录(若不存在):
sudo mkdir -p /etc/docker
  1. 创建或编辑/etc/docker/daemon.json文件,添加cgroup驱动配置:
{
  "exec-opts": ["native.cgroupdriver=cgroupfs"]
}
  1. 重启Docker服务:
sudo systemctl daemon-reload
sudo service docker restart

方法3:更新WSL2内核

  1. 打开Windows终端(管理员权限)执行:
wsl --update
  1. 重启WSL实例后再次尝试启动Docker。

验证步骤

启动Docker后执行以下命令,确认服务正常运行:

docker run hello-world

内容的提问来源于stack exchange,提问作者Anatol

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:47:33