docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker迁移及存储扩容问题

Docker迁移及存储扩容遇到的问题

作者:惊鸿Randy

解决CentOS Docker存储不足问题,将数据目录迁移至/home分区,通过truncate处理日志、修改配置文件及同步数据恢复容器镜像,最终释放空间并确保数据目录路径正确

Docker迁移及存储扩容

1. 问题概述

在 CentOS 系统上,由于 /var/lib/docker 目录所在的 / 根分区空间有限,仅 50GB,导致 Docker 容器运行时存储受限。

希望将 Docker 数据目录迁移至 /home 分区,该分区有 5.4TB 可用空间。

2. 具体问题及解决措施

问题 1:删除日志后磁盘空间未释放

重启 Docker 进程

systemctl restart docker

使用 truncate 命令清空日志文件(避免直接删除)

truncate -s 0 /var/lib/docker/containers/*/*-json.log

问题 2:如何扩展 Docker 存储空间

解决措施

/home 目录下创建新的 Docker 数据存储路径

mkdir -p /home/docker

修改 Docker 配置文件 /etc/docker/daemon.json

{
  "data-root": "/home/docker"
}

停止 Docker 进程

systemctl stop docker

同步 Docker 旧数据到新目录

rsync -a /var/lib/docker/ /home/docker/

删除旧目录并创建符号链接

rm -rf /var/lib/docker
ln -s /home/docker /var/lib/docker

重启 Docker 服务

systemctl start docker

问题 3:迁移后容器和镜像丢失

原因分析

发现容器和镜像仍然存储在 /home/docker/docker 目录,而 daemon.json 配置的是 /home/docker,导致 Docker 读取错误路径。

解决措施

修改 /etc/docker/daemon.json 配置

{
  "data-root": "/home/docker/docker"
}

重启 Docker 服务

systemctl restart docker

确认容器和镜像恢复

docker ps -a
docker images

3. 最终结果

总结

本次 Docker 存储迁移主要遇到了以下关键点:

  1. 删除日志文件后仍占用空间 → 需要 truncate 或者重启 Docker。
  2. 存储空间扩展 → 通过 /home 目录存储 Docker 数据,避免 50GB 根分区限制。
  3. 迁移后容器和镜像丢失 → 需确保 data-root 指向正确目录 /home/docker/docker

通过上述步骤,Docker 迁移及存储扩展问题已成功解决。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文