Kubernetes实战(二十)-集群节点磁盘清理

1 清理无用的镜像和关闭的容器

1.1 使用docker system df查询Docker 的磁盘使用情况

复制代码
$ docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              0                   0                   0 B                 0 B
Containers          0                   0                   0 B                 0 B
Local Volumes       0                   0                   0 B                 0 B

TYPE 列出了 Docker 使用磁盘的 4 种类型:

  • Images :所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。

  • Containers :运行的容器占用的空间,表示每个容器的读写层的空间。

  • Local Volumes :容器挂载本地数据卷的空间。

  • Build Cache :镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)。

  • RECLAIMABLE:磁盘可回收大小。

1.2 清理无用的镜像和关闭的容器

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

  • docker system prune -a : 清理得更加彻底,可以将没有容器使用 Docker镜像都删掉。

注意:这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都会删掉。

复制代码
$ docker system prune
WARNING! This will remove:
        - all stopped containers
        - all volumes not used by at least one container
        - all networks not used by at least one container
        - all dangling images
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B

不带-f或--force是交互式执行,需要输入y确认。

复制代码
$ docker system prune -h
Flag shorthand -h has been deprecated, please use --help

Usage:  docker system prune [OPTIONS]

Remove unused data

Options:
  -a, --all     Remove all unused images not just dangling ones
  -f, --force   Do not prompt for confirmation
      --help    Print usage

2 清理有问题的容器

如果清理了无用的镜像和容器磁盘水位还是比较高。那大概率是某个容器有问题,比如疯狂往磁盘上记日志。

复制代码
$ docker system df -v
Images space usage:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE                SHARED SIZE         UNIQUE SIZE         CONTAINERS

Containers space usage:

CONTAINER ID        IMAGE               COMMAND             LOCAL VOLUMES       SIZE                CREATED             STATUS              NAMES

Local Volumes space usage:

VOLUME NAME         LINKS               SIZE

可以看到每次CONTAINER的size。然后就是docker exec -it 进去看看,如果日志输出不正常就需要反馈给开发,不用往本地目录里打日志文件了。

相关推荐
程序员黑豆7 小时前
Java 注释详解:单行、多行与文档注释的完整指南
java·前端·ai编程
hey_sml8 小时前
JAVA每日一学---CompletableFuture中thenApply与thenCompose区别详解
java·开发语言
Doraemomo8 小时前
数据结构-环形链表
java·数据结构·链表
萧瑟余晖10 小时前
Java深入解析篇十七之SpringCloud
java·开发语言
是未才10 小时前
从输入 URL 到页面返回:DNS、路由、TLS 与 HTTP 完整链路
java·后端·计算机网络
ttod_qzstudio10 小时前
Java 常用语法极简通关(五):类与对象——字段、方法、构造器、this 与 static
java·开发语言·python
萧瑟余晖11 小时前
Java深入解析篇十七之Spring Security
java·开发语言·spring
不老刘12 小时前
【Java入门】Java服务部署方式全景对比:从java -jar到K8s
java·kubernetes·jar
离陌在学C#14 小时前
C# 重载与重写:深入理解面向对象编程的核心概念
java·c#
洛阳泰山14 小时前
AI 应用层被 Python 卷成红海,为什么我偏要用 Java 造一个 RAG + 工作流引擎?
java·人工智能·后端