docker之容器数据迁移
一、前言
在正式环境使用Docker部署各种应用或者中间件的时候,随着应用的应用数据或者日志数据增多,当初默认部署在root区的空间比较小,导致应用出现问题。所以本章通过容器数据迁移的方式,将容器迁移至其他分区,解决空间不足的问题。
二、实践
第一步、执行命令停止docker,容器的应用会停止,所以在停止前要检查应用是否备份。
systemctl stop docker
第二步、拷贝原文件信息到新的目录下,这里直接拷贝的,防止出现意外情况好还原。
原文件夹(/var/lib/docker/*) 在root分区
新文件夹(/home/lib/docker) 在home分区
cp -R -p /var/lib/docker/* /home/lib/docker
第三步、修改 /etc/docker/daemon.json文件中的data-root路径,使用新文件路径。
"data-root":"/home/lib/docker"
第四步、迁移文件(备份与清空磁盘空间)
mv /var/lib/docker /home/lib/docker-bak
第五步、重新加载配置文件,然后重启docker。
systemctl daemon-reload (重启加载配置文件)
systemctl restart docker (重启docker应用)
systemctl enable docker
第六步、查看相关容器应用信息是否正常启动、检查容器地址是否改变。
docker info 命令查看是否路径变化了 docker inspect xxxxx
注意:在容器迁移过程中可能会出现的问题,比如容器挂载卷的失效,在原容器与宿主机挂载的卷失效了;在容器迁移过程中,对文件迁移必须提高文件权限,修改文件权限导致容器重启失败的问题,比如RabbitMq的Cookie文件的权限要求。

浙公网安备 33010602011771号