docker-服务器数据盘迁移

Posted by CodingWithAlice on March 4, 2025

docker-服务器数据盘迁移

df -h 查看数据盘是否已经挂载

  • /dev/vdb1 已经成功挂载到了 /test 目录,且目前使用空间较小(24K
  1. 停止 Docker 服务
    sudo systemctl stop docker
    # or
    docker-compose down
    
  2. 迁移 Docker 数据目录

/var/lib/docker 目录下的内容复制到 /dev/vdb1 挂载的目录(这里是 /test

复制内容比较久的话,可以进入 /test 查看文件夹越来越大,就是正在拷贝

sudo cp -r -p /var/lib/docker/* /test/ # 递归复制 docker 所有文件和子目录,并保留文件权限和属性
  1. 修改 Docker 配置: Docker 的配置文件 /etc/docker/daemon.json(如果文件不存在,可以创建它
    {
     "data-root": "/test" // 添加或修改
    }
    
  2. 重新挂载并启动 Docker 服务
    sudo umount /var/lib/docker # 卸载当前的 Docker 数据目录,执行该指令确保卸除挂载关系
    
    • 重新挂载 /dev/vdb1/var/lib/docker(为了保持 Docker 默认的数据目录路径结构):
sudo mount /dev/vdb1 /var/lib/docker
  • 启动 Docker 服务:
sudo systemctl start docker
  1. 验证 Docker 数据目录: 执行 docker info 命令,查看 Docker Root Dir 字段是否显示为 /test,这表示 Docker 已经使用新的数据目录。

  2. 启动 docker-compose 容器

docker-compose up -d # 启动容器
  1. 测试 Docker 功能
    docker run --rm hello-world # 运行一个简单的 Docker 容器来测试 Docker 是否正常工作
    

    如果一切正常,你应该能看到输出 Hello from Docker!,并且 Docker 相关的数据应该存储在 /dev/vdb1 挂载的目录中。

通过以上步骤,你应该能够将 Docker 的数据目录迁移到 /dev/vdb1 并确保 Docker 和 docker-compose 正常工作。