原因
前段时间做线上docker服务迁移,最近收到了磁盘要满的告警,通过df -h和du -sh /var/*查看发现,var磁盘空间太小,且docker安装(存储)目录就在var目录下(/var/lib/docker),所以要迁移到比较大的盘下面
准备工作
我们以/letv/docker为新的docker存储目录
首先,将原有的docker安装目录复制到/letv/下面
cp -a /var/lib/docker /letv/
其次,备份下之前的存储目录
mv -u /var/lib/docker /var/lib/docker.bak
方法:软连接
通过把 Docker 的原安装(存储)目录移动到自定义的其他路径下,然后在原位置下建立软链接是最简单快捷的方式。
首先,关停 Docker 服务:
sudo systemctl stop docker
# or
sudo service docker stop
接着,新建一个 /var/lib/docker 的软链:
sudo ln -fs /letv/docker /var/lib/docker
最后,重启 Docker 服务:
sudo systemctl start docker
# or
sudo service docker start
启动 Docker 之后,以后你 pull image 和 run container,Docker 写入的路径依然是 /var/lib/docker ,但是因为软链的设置,实际已经是往新的目录写入了。至此,完成了 Docker 安装(存储)目录的迁移。
删除备份、启动镜像
启动镜像:
docker start CONCONTAINER ID
确认无误后删除备份:
rm -rf /var/lib/docker.bak
参考
两种方式迁移 Docker 的默认安装(存储)目录
作者:潘建锋