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

Ubuntu系统下如何迁移containerd数据目录至其他位置

迁移containerd根目录至新位置的操作方法

1. 停止containerd服务

先暂停containerd运行,避免迁移过程中数据被修改:

sudo systemctl stop containerd

执行以下命令确认服务已停止:

sudo systemctl status containerd

2. 完整复制现有数据到新位置

假设新存储路径为/mnt/new-containerd(请根据实际可用分区修改),用rsync保证文件权限、属性完全一致:

sudo rsync -avz /var/lib/containerd/ /mnt/new-containerd/

复制完成后可对比新旧目录大小,确认数据完整:

du -sh /var/lib/containerd/ /mnt/new-containerd/

3. 修改containerd配置文件

编辑containerd的核心配置文件(若文件不存在,先执行containerd config default > /etc/containerd/config.toml生成默认配置):

sudo vi /etc/containerd/config.toml

找到root配置项,将其值替换为新路径:

# 顶级root配置(对应containerd核心存储路径)
root = "/mnt/new-containerd"

# 若存在CRI插件的独立root配置,也同步修改
[plugins."io.containerd.grpc.v1.cri".containerd]
  root = "/mnt/new-containerd"

4. (可选)调整systemd服务配置

部分系统中,containerd的systemd服务文件会通过环境变量指定根目录,检查并修改:

  1. 打开服务文件:
sudo vi /lib/systemd/system/containerd.service
  1. 找到类似如下的环境变量行,替换为新路径:
Environment="CONTAINERD_ROOT_DIR=/mnt/new-containerd"
  1. 重新加载systemd配置:
sudo systemctl daemon-reload

5. 重启服务并验证

启动containerd服务:

sudo systemctl start containerd
  • 确认服务运行正常:sudo systemctl status containerd
  • 验证容器功能:执行crictl ps查看现有容器状态,或启动测试容器:
crictl run --image busybox:latest test-container
  • 确认containerd已使用新目录:查看进程参数,应包含--root /mnt/new-containerd:
ps aux | grep containerd

6. 清理旧数据(验证无误后执行)

待所有服务、容器运行正常后,删除旧的containerd目录以释放/var分区空间:

sudo rm -rf /var/lib/containerd/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:57:17