Centos 7 Docker 数据迁移方法

系统环境:CentOS 7

Docker 环境: 18.09.6

日期:2020年10月25日,(PS:如果后续 Docker 配置文件有变动再来更新)

【注】

  1. 在 /etc/docker/daemon.json 配置中添加参数:"graph":"/data/docker"

    graphDocker 17.05 中已被弃用,需使用 data-root 来替代(也就是本文的例子)

  2. 其他方案大部分都比较老了,是 Docker 老版本的方案;还有其他建立软连接或者是修改 etc/xxx/docker 之类的方法在之前的 Docker 版本或者是 Ubuntu 应该还能使用,但是如果没有该配置文件的话也推荐使用本文章的方法,该方法在新版本(18、19)都中已经过测试,所以建议使用这个方法。

开始迁移之旅。

1. 环境准备

安装rsync,为了保证 docker 原有文件的完整性(比如说权限信息),推荐使用 rsync,而不是直接 mv

yum -y install rsync

查看当前 docker 根目录所在(必须Docker运行时):

docker info
在这里插入图片描述

2. 迁移数据

# 先关闭 Docker 服务:
systemctl stop docker

# 然后复制文件到新目录
rsync -avz /var/lib/docker/ /new-path/docker/

/new-path/docker/ 是新的根目录路径,该操作将 /var/lib/docker 目录下的所有文件,复制到 /new-path/docker 目录下。

3. 修改配置文件 daemon.json

修改 docker 配置文件,并指向新的数据存放地址

【注】

  1. daemon.json 默认没有该文件,直接新建即可。
  2. vim 命令需要安装,没有的话可以使用vi命令。
vim /etc/docker/daemon.json

然后添加如下内容(json格式,如果已有其他配置,记得添加逗号,再添加 data-root,否则会报错)

{
    
    
    "data-root":"/new-path/docker"
}

wq 保存即可,如果没有的话会自动新建.

【注】如果将该 daemon 文件删除的话,则 docker 继续使用/var/lib/docker 作为默认路径。

4. 重新启动

systemctl start docker 

5. 检验是否迁移成功

docker info

【注】注意检查 Docker Root Dir是否是 daemon 中配置的路径。

6. 清空原有 docker 根目录

【注】建议清空 /var/lib/docker 路径下的所有文件,而不是删除整个目录。

cd /var/lib/docker

#清空当前目录下的所有文件(包含目录)
rm -rf ./*

猜你喜欢

转载自blog.csdn.net/peng2hui1314/article/details/109282823
今日推荐