迁移docker数据目录,释放硬盘数据(实战过)

将 Docker 数据目录迁移到新位置(如 /data2)可以释放系统盘空间或优化存储结构。以下是安全、完整的迁移步骤。

📋 迁移前准备

# 1. 查看当前 Docker 根目录
docker info | grep "Docker Root Dir"

# 2. 查看磁盘空间
df -h

# 3. 查看容器和镜像占用
docker system df

🛑 步骤 1:停止 Docker 服务

# 停止所有容器
docker stop $(docker ps -aq)

# 停止 Docker 服务
systemctl stop docker
# 或
service docker stop

📦 步骤 2:备份现有数据(可选但推荐)

# 创建备份
tar -czvf /root/docker-backup-$(date +%F).tar.gz /var/lib/docker

# 或完整备份整个目录
cp -r /var/lib/docker /root/docker-backup-$(date +%F)

🚚 步骤 3:迁移数据到新位置

注意用rsync -avz 保留权限,不然后期因为权限带来非常多问题。

# 假设新目录为 /data2/docker
mkdir -p /data2/docker

# 复制数据(保留权限和属性)
rsync -avz /var/lib/docker/ /data2/docker/

# 或使用 cp
# cp -a /var/lib/docker/* /data2/docker/

⚙️ 步骤 4:修改 Docker 配置

方法一:修改 daemon.json(推荐)

# 编辑配置文件
vim /etc/docker/daemon.json

# 添加或修改以下内容
{
  "data-root": "/data2/docker"
}

如果文件不存在,创建它。确保 JSON 格式正确。

注意:

        1、docker版本不一样,参数不一样        2、不需要修改 storage-driver 的配置值,但需要保留该配置。
        简单来说:
        storage-driver 是 Docker 存储数据的方式(引擎)。
        data-root 是 Docker 存储数据的位置(路径)。

方法二:修改 systemd 服务文件

# 编辑服务文件
vim /etc/systemd/system/docker.service.d/override.conf

# 添加以下内容
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --data-root=/data2/docker

🧹 步骤 5:清理并重启

# 可选:备份原目录(确认迁移成功后再删除)
mv /var/lib/docker /var/lib/docker.backup

# 重新加载 systemd 配置
systemctl daemon-reload

# 启动 Docker
systemctl start docker

# 设置开机自启
systemctl enable docker

✅ 步骤 6:验证迁移

# 检查 Docker 根目录是否变更
docker info | grep "Docker Root Dir"

# 检查容器状态
docker ps -a

# 检查镜像
docker images

# 测试运行容器
docker run --rm hello-world

# 检查新目录占用
du -sh /data2/docker

🧩 可选:迁移特定子目录

如果只想迁移部分数据(如容器、镜像):

# 只迁移容器数据
rsync -avz /var/lib/docker/containers/ /data2/docker/containers/

# 只迁移镜像数据
rsync -avz /var/lib/docker/image/ /data2/docker/image/

⚠️ 常见问题处理

1. 权限问题

# 确保目录权限正确
chown -R root:root /data2/docker
chmod -R 711 /data2/docker

2. SELinux 问题(CentOS/RHEL)

# 设置正确的上下文
chcon -R -t var_lib_t /data2/docker

# 或临时禁用
setenforce 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dayfoxman

如果帮到了您不妨赏半杯奶茶解渴

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值