当前位置:首页 » 《资源分享》 » 正文

解决docker目录内存不足扩容处理

14 人参与  2024年11月03日 18:40  分类 : 《资源分享》  评论

点击全文阅读


当我们使用docker时,经常会创建新镜像和新容器,在新容器中又会安装各种包,这些东西不是虚拟的,而是实实在在存于我们的磁盘中,默认在/var/lib/docker中,这个目录是属于系统盘的,而系统盘的空间往往不大,这样就会造成,随着时间的推移,docker越来越大,最后系统盘的空间被占满,所以这个时候就需要迁移docker的存储目录到更大的盘,才能把系统盘的空间腾出来。

当重启容器提示no space left 就是内存不足

1、查看服务器所有磁盘的使用情况:

df -h

在这里插入图片描述
可以看到每个盘的大小,这里可以看到/dev/mapper/centos-root总大小是50G(相对其他盘小太多),之前docker给占满了,因为我后面给docker相关迁移到了home下面,所以空出很大的空间,可以看到/dev/mapper/centos-home空间总大小984G,挂载点是/home,于是我给docker相关的目录迁移到/home下了

2、查看docker镜像和容器存储目录的空间大小

du -sh /var/lib/docker/

3、停止docker服务

systemctl stop docker

停止失败的时候可以更换命令试试

service docker stop

4、docker目录不足迁移扩容方法:

将docker迁移到大容量的磁盘中

我这里是迁移到/home/docker目录下,相当于给原来的/var换成了/home/docker其他的结构和之前保持一致

# 首先创建目录mkdir -p /home/docker/lib/#迁移rsync -avz /var/lib/docker /home/docker/lib/

在这里插入图片描述

编辑/etc/docker/daemon.json,添加参数,将docker的目录迁移绑定
红框是添加的参数,nginx版本不同data-root可能会不生效,可以给data-root换成graph试试
在这里插入图片描述

重载和重启docker服务

systemctl daemon-reload && systemctl restart docker

如果systemctl依然运行失败,可以使用以下命令重启docker试试:

service docker restart

检查docker是否绑定新目录

docker info

如果Docker Root Dir由/var/lib/docker变为你指定的目录,说明迁移成功
在这里插入图片描述
删除docker旧目录

rm -rf /var/lib/docker

这个时候再去使用docker image 、 docker ps 就可以发现之前的镜像和容器数据都在,并且可以正常使用啦


点击全文阅读


本文链接:http://zhangshiyu.com/post/181989.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1