Docker的存储数据迁移

Docker服务的默认卷、镜像、网络等内容存储在系统盘的/var/lib/docker中, 占用大量空间, 为了避免影响到系统的正常运行, 需要这些文件到迁移到数据盘中

在迁移的过程中也可以检查docker-compose中配置的日志路径, 可以一同迁移到数据盘中

1. 停止服务

在停止 Docker 服务之前, 首先检查下容器内的数据是否已经做好了持久化, 如果没有, 最好备份一下

1
systemctl stop docker

2. 确定迁移分区

确定迁移的分区是否存在, 使用lsblk检查, 如果数据盘没有初始化, 可以参考移动云ECS初始化部分的内容

3. 数据迁移

这里以迁移到/mnt/new-docker路径为例, 首先安装rsync工具

1
2
apt install rsync
rsync -aHAX /var/lib/docker/ /mnt/new-docker/

rsync命令用于递归复制并保持文件的权限、时间戳和符号链接, -aHAX选项确保数据完整性

4.更新 Docker 配置

更新Docker的存储路径配置, 修改daemon.json文件

1
2
3
4
5
6
vim /etc/docker/daemon.json

# 修改
{
"data-root": "/mnt/new-docker"
}

5. 重启服务, 验证, 清理旧数据

1
2
3
4
5
6
7
8
9
# 重启守护进程和Docker服务
systemctl daemon-reload
systemctl start docker

# 检查所有Docker服务状态是否正常
docker ps -a

# 确保没问题后删除旧的数据
rm -rf /var/lib/docker