办理docker目录内存不敷扩容处置惩罚

打印 上一主题 下一主题

主题 835|帖子 835|积分 2505

当我们利用docker时,经常会创建新镜像和新容器,在新容器中又会安装各种包,这些东西不是假造的,而是实着实在存于我们的磁盘中,默认在/var/lib/docker中,这个目录是属于系统盘的,而系统盘的空间往往不大,这样就会造成,随着时间的推移,docker越来越大,末了系统盘的空间被占满,所以这个时候就必要迁移docker的存储目录到更大的盘,才能把系统盘的空间腾出来。
当重启容器提示no space left 就是内存不敷
1、查看服务器全部磁盘的利用环境:

  1. df -h
复制代码

可以看到每个盘的大小,这里可以看到/dev/mapper/centos-root总大小是50G(相对其他盘小太多),之前docker给占满了,因为我后面给docker相干迁移到了home下面,所以空出很大的空间,可以看到/dev/mapper/centos-home空间总大小984G,挂载点是/home,于是我给docker相干的目录迁移到/home下了
2、查看docker镜像和容器存储目录的空间大小

  1. du -sh /var/lib/docker/
复制代码
3、制止docker服务

  1. systemctl stop docker
复制代码
制止失败的时候可以更换命令试试
  1. service docker stop
复制代码
4、docker目录不敷迁移扩容方法:


  • 将docker迁移到大容量的磁盘中
    我这里是迁移到/home/docker目录下,相当于给原来的/var换成了/home/docker其他的布局和之前保持同等
    1. # 首先创建目录
    2. mkdir -p /home/docker/lib/
    3. #迁移
    4. rsync -avz /var/lib/docker /home/docker/lib/
    复制代码

  • 编辑/etc/docker/daemon.json,添加参数,将docker的目录迁移绑定
    红框是添加的参数,nginx版本差别data-root大概会不生效,可以给data-root换成graph试试

  • 重载和重启docker服务
    1. systemctl daemon-reload && systemctl restart docker
    复制代码
    如果systemctl依然运行失败,可以利用以下命令重启docker试试:
    1. service docker restart
    复制代码
    查抄docker是否绑定新目录
    1. docker info
    复制代码
    如果Docker Root Dir由/var/lib/docker变为你指定的目录,说明迁移成功

    删除docker旧目录
    1. rm -rf /var/lib/docker
    复制代码
    这个时候再去利用docker image 、 docker ps 就可以发现之前的镜像和容器数据都在,并且可以正常利用啦

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表