docker默认存储空间用完情况下,做迁移数据

由于docker默认存放数据路径为/var/lib/docker,但运行了一段时间后,发现/var/lib/docker下的目录文件过大,导致此分区空间不够用。通过以下方法,解决该问题。

 

如何避免:

最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中。规避迁移数据过程中造成的风险。

方式一:修改默认存储路径

直接移出数据,并修改docker默认存放路径位置

1、移出数据

systemctl stop docker

mkdir -p /data1/docker/   #创建新的docker目录,执行命令df -h,找一个大的磁盘

rsync -avz /var/lib/docker/ /data1/docker/  #迁移到新路径下

 

2、修改配置默认路径

#添加--graph=/data1/docker/

[root@cdh03 ~]# vim /usr/lib/systemd/system/docker.service  

ExecStart=/usr/bin/dockerd-current --graph=/data1/docker/

          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current

[root@cdh03 ~]# systemctl daemon-reload

[root@cdh03 ~]# systemctl start docker

[root@cdh03 ~]# docker info |grep "Docker Root Dir"

Docker Root Dir: /data1/docker

[root@cdh03 ~]# docker images  #确认之前的镜像是否还在

[root@cdh03 ~]# docker ps -a

3、确定容器没问题后删除/var/lib/docker/目录中的文件

方式二:软连接

systemctl stop docker

mkdir -p /data1/docker/   #创建新的docker目录,执行命令df -h,找一个大的磁盘

rsync -avz /var/lib/docker/ /data1/docker/  #迁移到新路径下

mv /var/lib/docker /data/docker_bak

ln -s /data1/docker /var/lib/

systemctl daemon-reload

systemctl start docker

原文地址:https://www.cnblogs.com/chuangcc/p/10762220.html