docker迁移默认的存储路径

553 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

由于数据库是使用docker部署的,今天突然发现数据库挂掉了,然后排查的时候发现数据库的镜像状态一直是restart状态,经过排查发现/目录下的空间满了导致的,docker安装的时候没有修改路径,默认的存储路径在/var/lib/docker下,所以磁盘满应该是镜像太多导致,使用du -sh /var/lib/docker命令查看,果然发现是镜像文件占用了100多G,因此我们需要把镜像的存储路径迁移到挂载的容量大的磁盘上面

1.首先停止docker服务

systemctl stop docker

或者

service docker stop

2.寻找挂载磁盘大的目录下创建docker的存储目录,我的是在/home目录下,这个需要根据实际情况进行选择

mkdir /home/tools/docker_data

3.将之前的docker文件迁移到新的目录下

rsync -avz /var/lib/docker /home/tools/docker_data

4.编辑配置文件,如果没有就新建

vim /etc/docker/daemon.json

加入下面内容:

{
 "graph":"/home/tools/docker_data/docker"

}

注意:需要根据自己的docker版本来选择加入的内容,新版的为data-root参数,我的docker版本比较旧使用的是graph参数

{

 "data-root": "/home/docker_data/docker"

}

版本不一致会导致docker服务在启动的时候报错

Redirecting to /bin/systemctl restart docker.service

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

AA2B3A90-F04F-4B0A-8127-DD6A0089ADFC.png

最后发现是因为docker在后面版本把graph弃用,改为data-root了

image.png

5.启动docker

systemctl start docker

或者

service docker start

6.然后删除原来的目录

rm -rf /var/lib/docker

7.然后查看发现原先在/var/lib/docker目录下的都已经切换到新的目录,且/目录也已经释放

0A0A2FBC-D31B-4F06-8C31-BD1C2456E8A1.png