docker安装目录迁移的两种常用方法
作者:心如止水-WTF
在安装docker时通常是默认安装的系统盘目录/var/lib/docker,而该目录通常是比较小的,一旦镜像过多就可能出现docker无法运行的情况,这时进行docker目录的迁移就可以很好地解决问题。
docker目录的迁移其实非常简单,有以下两种方法可以实现。
方法一(推荐)
1) 目录拷贝
docker镜像, 容器等信息通常是默认存储在/var/lib/docker目录下的,因此需要先将/var/lib/docker整个目录拷贝到需要迁移的目录中去
1.停掉docker服务: systemctl stop docker
2.将docker存储目录拷贝到要迁移的目录中去(例如,此处为/home/docker/lib/): rsync -r -avz /var/lib/docker /home/docker/lib/
2) 链接迁移目录到原目录
mv /var/lib/docker /var/lib/docker-old ln -s /home/docker/lib/docker /var/lib/
3) 重启docker和验证
重启docker: systemctl start docker
/ systemctl restart docker
验证镜像和容器可以正常运行,即可删除/var/lib/docker-old目录(注意:在未确定镜像和容器正常运行前,千万别删除/var/lib/docker-old目录)
方法二
1) 目录拷贝
和方法1一样进行目录拷贝迁移
1.停掉docker服务: systemctl stop docker
2.将docker存储目录拷贝到要迁移的目录中去(例如,此处为/home/docker/lib/): rsync -r -avz /var/lib/docker /home/docker/lib/
2) 修改配置
1.如果不存在配置目录则创建,存在则忽略:mkdir -p /etc/systemd/system/docker.service.d/
2.编辑devicemapper.conf: vi /etc/systemd/system/docker.service.d/devicemapper.conf
, 内容如下:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker
3.vi /etc/docker/daemon.json 添加 {"storage-driver": "devicemapper" }
, 此处不修改可能会出现Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
3) 重启 docker和验证
- 重新加载systemd管理器配置:
systemctl daemon-reload
- 重启docker服务:
systemctl restart docker
- 看目录是否更改:
docker info
; 显示Docker Root Dir: /home/docker/lib/docker
则表明修改成功 - 验证镜像和容器是否可以正常运行,如果正常即可删除原来的/var/lib/docker目录
参考链接:
https://www.cnblogs.com/insist-forever/p/11739207.html
https://github.com/coreos/bugs/issues/2340
到此这篇关于docker安装目录迁移多种方法的文章就介绍到这了,更多相关docker安装目录迁移内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!