现象:
启动容器时报错
Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown
这个错误通常出现在 Docker 运行时,表示 cgroup 相关的挂载点不存在,可能是由于系统未正确配置 cgroups 所致。
可能的原因和解决方案
1. 确保 cgroup 相关的文件系统已挂载
先检查 cgroup 是否被正确挂载:
mount | grep cgroup
如果没有 cgroup 相关的挂载点,手动挂载:
sudo mount -t cgroup2 none /sys/fs/cgroup
如果你的系统使用的是 cgroup v1,可以尝试:
sudo mount -t cgroup none /sys/fs/cgroup
2. 重新加载 cgroup 配置
sudo systemctl daemon-reexec
sudo systemctl restart docker
3. 检查内核参数
Docker 需要 cgroup,检查是否启用了 cgroup
:
grep -i cgroup /proc/filesystems
如果没有输出,可能需要加载 cgroup
相关模块:
sudo modprobe cgroup
4. 启用 cgroup 并重启(适用于 Ubuntu/Debian)
如果你使用的是 Ubuntu/Debian,可以尝试:
sudo mkdir -p /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd systemd /sys/fs/cgroup/systemd
sudo systemctl restart docker
5. 确保 cgroup_enable=memory
(适用于部分 Linux 发行版)
某些 Linux 发行版默认未启用 memory
cgroup,可以尝试:
sudo grubby --update-kernel=ALL --args="cgroup_enable=memory swapaccount=1"
sudo reboot
然后再次尝试启动 Docker。