docker存储空间清理之overlay2

关于overlay2及清理

docker默认存储路径/var/lib/docker/overlay2下占用空间很大,达到了80%以上,需要清理,不然k8s节点将驱逐pod,后果很可怕。

进入/var/lib/docker/overlay2目录,可以看到很多md5编码的id文件,这个文件是什么?

file

上图的md5编码文件是什么?或者说docker的overlay2中存的都是什么?
在/var/lib/docker/overlay2目录下的文件都是docker使用的存储,overlay2是docker使用的文件存储驱动。也就是这些md5文件里面存储的都是我们的镜像文件和容器内的文件,所以如果一个容器里面的文件不单独挂出来,那么容器产生的文件默认都在这目录下面。

  • 排序看一下文件大小:

    du -sh * |sort -h

    file

    这些文件也不敢轻易清理,因为有可能是在用的镜像,清理了文件和镜像后容器就有问题,那么就需要确定这些md5文件和哪个容器挂钩。

  • 确定md5文件是哪个容器的存储目录:

    docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}'|grep 58db5ae65d5632546965
    # 如果运行结果是没有在运行的容器使用,那么有可能容器早就被清理,这个容器存储目录也毫无意义。
    清理镜像脚本:
    [root@node1 overlay2]# vim docker.sh
    for i in `ls /data/docker/overlay2`;
    do
    docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}'|grep $i
    if [ $? -eq 0  ];
    then echo "该镜像不能清理,正在使用"
    else
    rm -rf $i
    fi
    done
    在K8S中,在docker inspect的时候可以看见pod的名称,可以重启一下pod,来释放临时文件!
直接删除:
rm -rf 66c0a274589e4dcab123bc7a6093bb692efd60babf02df7ade98070b96644aa6
或者先备份在删除:
cp -a 66c0a274589e4dcab123bc7a6093bb692efd60babf02df7ade98070b96644aa6  /data/overlay2/
rm -rf 66c0a274589e4dcab123bc7a6093bb692efd60babf02df7ade98070b96644aa6
查看docker磁盘使用情况
moa-k8s-function-02:/var/lib/docker/overlay2# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              412                 74                  19.09GB             17.33GB (90%)
Containers          143                 140                 342.6kB             0B (0%)
Local Volumes       0                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B

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

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

所以docker安装的时候尽量不要默认安装目录/var/lib/docker,要安装到对应的数据盘挂载目录下,不然docker需要迁移。

男孩子都是香香软软的小猪
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇