系统环境:CentOS 7
Docker
环境: 18.09.6
日期:2020年10月25日
,(PS:如果后续 Docker
配置文件有变动再来更新)
【注】
-
在 /etc/docker/daemon.json
配置中添加参数:"graph":"/data/docker"
。graph
在Docker 17.05
中已被弃用,需使用data-root
来替代(也就是本文的例子) -
其他方案大部分都比较老了,是
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 配置文件
,并指向新的数据存放地址
【注】
daemon.json
默认没有该文件,直接新建即可。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 ./*