Appearance
containerd & docker 数据迁移
最近遇到一件比较棘手的事,有一台Centos服务器,/home 目录挂载在1T的的分区上,/ 根目录挂载在只有50GB的分区上, 由于安装软件都使用yum,导致根目录只剩下了8G了,罪魁祸首就是最近安装的kubernetes和docker, 吃了整整32G!!!!于是决定将它们的数据迁移到 /home目录
containerd 数据迁移
- 停止服务
sh
systemctl stop containerd
- 迁移数据
sh
rsync -avx /var/lib/containerd/ /home/forest/var/lib/containerd/
因为containerd下的子目录比较多,项目如果很大,那么迁移时间会很长,慢慢等待吧...
- -a:表示归档模式,将保留文件的所有属性,包括权限、所有权、时间戳等。
- -v:表示详细模式,显示文件传输的详细信息。
- -x:表示不跨文件系统边界,避免跨越不同的文件系统边界,只在同一文件系统内进行迁移。
同时确定 containerd 目录权限一致
sh
ls -ald /home/forest/var/lib/containerd/ # 711
ls -ald /var/lib/containerd/ # 711
- 原目录备份
sh
mv /var/lib/containerd /var/lib/containerd-bk
- 修改配置文件data目录, 指向到迁移目录
root = "/var/lib/containerd"
=>root = "/home/forest/var/lib/containerd"
sh
vi /etc/containerd/config.toml
- 启动服务
sh
systemctl start containerd
大功告成!!! 原目录可以放一段时间后再删除,防止意外.
docker 数据迁移
docker的数据目录迁移和containerd基本一致, 首先查看 /etc/docker/daemon.json
是否存在,如果不存在创建一个,默认数据目录是 /var/lib/docker
- 停止服务
sh
systemctl stop docker
- 迁移数据
sh
rsync -avx /var/lib/docker/ /home/forest/var/lib/docker/
同时确定 docker 目录权限一致
sh
ls -ald /home/forest/var/lib/docker/ # 711
ls -ald /var/lib/docker/ # 711
- 把原目录备份
sh
mv /var/lib/docker /var/lib/docker-bk
- 修改配置文件data目录, 指向到迁移目录
"data-root": "/var/lib/docker"
=>"data-root": "/home/forest/var/lib/docker"
sh
vi /etc/docker/daemon.json
如果目录不存在直接创建,并且写进去
json
{
"data-root": "/home/forest/var/lib/docker"
}
- 启动服务
sh
systemctl start docker
大功告成!!! 以后再也不怕硬盘不够用了!!!!