飞牛 NAS 的这个“坑”确实是因为 Docker v29 引入了 containerd 作为后端存储驱动,而系统默认只搬了 Docker 的家,没搬 Containerd 的家。
首先可以通过磁盘分析工具查看都是什么东西占满了系统盘(排除挂载的盘,如我的是vol1和vol2):
sudo apt update && sudo apt install ncdu -y
# 扫描系统盘,排除大数据盘
sudo ncdu / --exclude /vol1 --exclude /vol2 --exclude /fs
发现里 /var/lib/containerd有很多东西,这说明我们的containerd
验证:
sudo du -sh /var/lib/containerd
如果发现输出都是以 /var/lib/containerd/开头的说明就是在系统盘。
- 停止服务
sudo systemctl stop docker
sudo systemctl stop containerd
- 拷贝containerd到你想要的磁盘(如vol2下)
sudo mkdir -p /vol2/docker/containerd_new
sudo rsync -avz /var/lib/containerd/ /vol2/docker/containerd_new/
- 修改containerd配置文件,找到root目录
sudo nano /etc/containerd/config.toml
# 默认是 root = "/var/lib/containerd"
# 修改为你的数据盘路径:
root = "/vol2/docker/containerd_new"
- 重启服务
sudo systemctl daemon-reload
sudo systemctl start containerd
sudo systemctl start docker
如果服务重启没问题后,即可将源目录删除掉释放空间