Docker 磁盘空间不足怎么办:根目录大迁移

引言

docker所在服务器,在运行了一段时间后,服务器磁盘目录渐渐不够用。

通过du -h --max-depth=1 / 逐级目录排查,发现/var/lib/docker目录文件过大。

解决方法

转移数据修改docker默认存储位置

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

操作步骤

1、停止docker服务

systemctl stop docker

2、创建新docker目录

使用命令df -h,找一个大的磁盘,比如新根目录/home

创建/home/docker/lib

mkdir -p /home/docker/lib

3、迁移/var/lib/docker目录下面的文件到/home/docker/lib

docker路径:/home/docker/lib/docker

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

4、配置 /usr/lib/systemd/system/docker.service

vi /usr/lib/systemd/system/docker.service


[Service]
ExecStart=/usr/bin/dockerd  --graph=/home/docker/lib/docker

注意:也可以做软链接

cd /var/lib
rm -rf docker #前面的mv实际只有复制的效果,所以这里要执行一下删除操作
ln -s /home/docker/lib/ ./

5、重启docker

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

6、确认Docker Root Dir修改是否已经生效

[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker info
...
Docker Root Dir: /home/docker/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
...

7、启动成功后,再确认之前的镜像是否还在

[root@iZbp1jcwx7sfb1yrnvpg84Z docker]# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE

8、确定迁移后容器没问题,再删除/var/lib/docker/目录下的文件

rm -rf /var/lib/docker

 

 

附录:

常见docker清理方法

docker system df 类似于Linux上的df命令,用于查看Docker的磁盘使用情况:

docker system prune 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

docker system prune -a 清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值