docker-服务器数据盘迁移
df -h
查看数据盘是否已经挂载
/dev/vdb1
已经成功挂载到了/test
目录,且目前使用空间较小(24K
- 停止 Docker 服务:
sudo systemctl stop docker # or docker-compose down
- 迁移 Docker 数据目录:
将 /var/lib/docker
目录下的内容复制到 /dev/vdb1
挂载的目录(这里是 /test
)
复制内容比较久的话,可以进入 /test 查看文件夹越来越大,就是正在拷贝
sudo cp -r -p /var/lib/docker/* /test/ # 递归复制 docker 所有文件和子目录,并保留文件权限和属性
- 修改 Docker 配置:
Docker 的配置文件
/etc/docker/daemon.json
(如果文件不存在,可以创建它{ "data-root": "/test" // 添加或修改 }
- 重新挂载并启动 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
-
验证 Docker 数据目录: 执行
docker info
命令,查看Docker Root Dir
字段是否显示为/test
,这表示 Docker 已经使用新的数据目录。 -
启动
docker-compose
容器:
docker-compose up -d # 启动容器
- 测试 Docker 功能:
docker run --rm hello-world # 运行一个简单的 Docker 容器来测试 Docker 是否正常工作
如果一切正常,你应该能看到输出
Hello from Docker!
,并且 Docker 相关的数据应该存储在/dev/vdb1
挂载的目录中。
通过以上步骤,你应该能够将 Docker 的数据目录迁移到 /dev/vdb1
并确保 Docker 和 docker-compose
正常工作。