zoukankan      html  css  js  c++  java
  • docker的/var/lib/docker/overlay文件夹突然占满了硬盘

    场景描述

    事情是这样的,前两天客户的服务器突然断电了,导致用docker部署的服务也挂了。昨天去现场,重启了docker,同时准备更新一下服务。结果发现有一台节点硬盘满了…

    还是觉得有些奇怪的,毕竟docker的安装盘有800多个G的空间,之前也只用了100左右,觉得有点奇怪,就开始了排错。

    排错过程

    本身机器只有我们一家在用,所以不存在被占用的情况。于是使用下面命令查看是不是硬盘真被占满了:

    df -h
    

    结果真的是占满了

    再用下面命令查看哪个文件夹太大:

    du -sh *
    

    发现是 /var/lib/docker/overlay 占满了

    网上查一下这个目录的作用,说是 overlay/overlay2表示Docker的存储驱动,可以参考一下这篇文章:https://blog.csdn.net/styshoo/article/details/60715942

    也就是说容器/镜像等都会存在这个目录下,当量大的时候就会占满硬盘。

    也可以参考官网(https://docs.docker.com/storage/storagedriver/overlayfs-driver/

    继续在网上搜资料,说可以看看是不是死掉容器过多的原因,使用 docker ps -a看了下,果然是。于是清理了一下无用的容器,硬盘就恢复正常了……

    简单办法

    多看了一下资料,发现可以使用 docker system prune来自动清理空间,参考下面:

    • 该指令默认会清除所有如下资源:
      • 已停止的容器(container)
      • 未被任何容器所使用的卷(volume)
      • 未被任何容器所关联的网络(network)
      • 所有悬空镜像(image)。
    • 该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
    • 添加 -a 或 --all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
    • 可以添加 -f 或 --force 参数用以忽略相关告警确认信息。
    • 指令结尾处会显示总计清理释放的空间大小。

    https://yq.aliyun.com/articles/272173

    另外,使用下面命令可以查看docker所占的硬盘大小,如:

    20190417 docker system df
    TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
    Images              104                 5                   77.78GB             71.39GB (91%)
    Containers          8                   0                   139MB               139MB (100%)
    Local Volumes       30                  1                   3.276kB             3.183kB (97%)
    Build Cache                                                 0B                  0B
    

    其实docker挺简单的,把官方文档的入门教程看完,就能用了。
    再自己打个包试试,基本上就OK了。后面 遇到问题再深入,都可以。

    当然,如果想买本书,那么我推荐这一本

    深入浅出Docker 可以点击直达京东

    基本上就是官方文档的中文译本,所以流程上和官网文档也是一致的,适合英文不好的朋友看

    转载自:  https://www.cnblogs.com/wswang/p/10736726.html

  • 相关阅读:
    python_基础
    大话数据结构笔记
    c语言深度剖析
    liunx 第一章
    zookeper实现分布式锁
    zookeeper图形化操作工具
    windows下zookeeper集群的搭建
    TransactionInterceptor]: Bean property 'transactionManagerBeanName' is not w
    深入浅出zookeeper(二)
    com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of
  • 原文地址:https://www.cnblogs.com/augusite/p/15581187.html
Copyright © 2011-2022 走看看