二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

  • 迎刃而解

  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

  • Supervisord

  • Systemd

  • Docker

    • 从DockerHub到阿里云镜像仓库:整理汇总我同步过的docker镜像(公开可匿名pull)
    • docker的几种安装方式
    • docker配置加速器的几种方案
    • docker搭建官方版私有仓库(了解)
    • Docker笔记之企业级仓库harbor搭建
    • 认识了解Dockerfile
    • 利用Dockerfile创建一些基础镜像
    • Docker笔记之与镜像相关的命令整理
    • 从docker容器时间问题探究到Namespace问题
    • Docker笔记之制作kafka镜像
    • Docker笔记之制作lnmp镜像
    • Docker笔记之使用apline镜像
    • Docker笔记之修改默认数据存储目录
    • Docker笔记之修改默认网段
    • docker磁盘或者镜像清理相关内容
      • 1,查看磁盘占用
      • 2,清理镜像
        • 1,介绍
        • 2,删除所有悬空镜像。
        • 3,过滤
      • 3,定义容器日志大小
    • centos镜像添加chrome浏览器以及中文字体
    • 利用buildx构建支持多CPU架构平台的docker镜像
    • docker exec命令中含有通配符执行失败的问题
    • Docker 调试构建失败的 Dockerfile 的方法
    • Docker容器如何优雅地访问宿主机网络
  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • Docker
二丫讲梵
2021-08-22
目录

docker磁盘或者镜像清理相关内容

文章发布较早,内容可能过时,阅读注意甄别。

# 1,查看磁盘占用

docker system df 命令,类似于 Linux上的 df 命令,用于查看 Docker 的磁盘使用情况:

docker system df
1

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

  • Images :所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。
  • Containers :运行的容器占用的空间,表示每个容器的读写层的空间。
  • Local Volumes :容器挂载本地数据卷的空间。
  • Build Cache :镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)。

最后的 RECLAIMABLE 是可回收大小。

  • docker system prune : 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(即无 tag 的镜像)。
  • docker system prune -a : 清理得更加彻底,可以将没有容器使用 Docker镜像都删掉。 注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都删掉了。

eb0053333dd237a83651ec97816cae17

# 2,清理镜像

# 1,介绍

使用 docker image prune可以 删除未使用的映像,注意API 1.21+ (opens new window)要使用此命令,客户端和守护进程 API 都必须至少是 1.21 (opens new window) 。

$ docker image prune -h
Flag shorthand -h has been deprecated, please use --help

Usage:  docker image prune [OPTIONS]

Remove unused images

Options:
  -a, --all             Remove all unused images, not just dangling ones 删除所有未使用的映像,而不仅仅是悬空映像
      --filter filter   Provide filter values (e.g. 'until=<timestamp>') 提供过滤值(例如'until =“)
  -f, --force           Do not prompt for confirmation 不要提示确认
1
2
3
4
5
6
7
8
9
10
11

# 2,删除所有悬空镜像。

删除所有悬空映像。如果-a指定,还将删除任何容器未引用的所有映像。

$ docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
1
2
3
4

申明

原创文章eryajf,未经授权,严禁转载,侵权必究!此乃文中随机水印,敬请读者谅解。

Copyright 二丫讲梵 (opens new window) 版权所有

# 3,过滤

过滤标志(--filter)格式为"key = value"。如果有多个过滤器,则传递多个标志(例如--filter "foo=bar" --filter "bif=baz")

目前支持的过滤器是:

  • until(<timestamp>) - 仅删除在给定时间戳之前创建的映像
  • 标签(label=<key>,label=<key>=<value>,label!=<key>,或label!=<key>=<value>) -仅删除与映像(或没有,如果label!=...被使用)指定的标签。

该until过滤器可以是 Unix 的时间戳,日期格式的时间戳,或持续时间字符串(例如,去10m,1h30m)计算相对于守护机器的时间。支持的格式为日期格式时间戳包括 RFC3339Nano,RFC3339, ,2006-01-02T15:04:05,2006-01-02T15:04:05.999999999,2006-01-02Z07:00和2006-01-02。如果在时间戳结束时未提供 a Z或 +-00:00时区偏移,则将使用守护程序上的本地时区。提供 Unix 时间戳时输入秒[.nanoseconds],其中秒是自 1970 年 1 月 1 日(午夜 UTC / GMT)以来经过的秒数,不计算闰秒(也称为 Unix 纪元或 Unix 时间)和可选项。纳秒字段是一秒的一小部分,不超过九位数。

的label过滤器接受两种格式。一个是label=...(label=<key>或label=<key>=<value>),它删除具有指定标签的映像。另一种格式是label!=...(label!=<key>或label!=<key>=<value>),它删除没有指定标签的映像。

预测将被删除的内容

如果使用正过滤(测试标签是否存在或标签是否具有特定值),则可以使用docker image ls相同的过滤语法查看哪些映像与过滤器匹配。

但是,如果使用的是负过滤(测试对于不存在标签的或标签并不具有特定的值),这种类型的滤波器的不与工作docker image ls所以不能容易地预测哪些映像将被移除。此外,即使您正在使用,确认提示docker image prune 始终会警告所有悬空映像将被删除 --filter。

以下删除之前创建的映像2021-01-01T00:00:00。

查看:

$ docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}'
REPOSITORY                                        TAG       IMAGE ID       CREATED AT                      SIZE
test                                              latest    65f677cc947a   2021-08-19 22:38:05 +0800 CST   445MB
registry.cn-hangzhou.aliyuncs.com/eryajf/centos   7.8       5ea7c3a67505   2020-11-01 18:32:46 +0800 CST   475MB
1
2
3
4

执行删除:

$ docker image prune -a --force --filter "until=2021-01-01T00:00:00"
Deleted Images:
untagged: registry.cn-hangzhou.aliyuncs.com/eryajf/centos:7.8
untagged: registry.cn-hangzhou.aliyuncs.com/eryajf/centos@sha256:f7c413edcad7a3389e079cf04b4cddb46c96d67d29bf8c0d48dbd1ceeee2b474
deleted: sha256:5ea7c3a675055762552ad50b6f293bb050bdee188da3a2c37c61be90450f5987
deleted: sha256:c8279b704e4fb851f28a3fe2f02365df13bed3b6cc9b1fae6b2c50d562b04cec
deleted: sha256:e5a0eda56319769809257786837e4478e778aba54cdac72a468a8ac053637ca4
deleted: sha256:da34d2fe9e29af7b5ad6447089b19c2d0c7aa11d79641ca25e3de88a851706c7
deleted: sha256:613be09ab3c0860a5216936f412f09927947012f86bfa89b263dfa087a725f81

Total reclaimed space: 475.2MB
1
2
3
4
5
6
7
8
9
10
11

可以看到在这个时间点之前的 centos 镜像被删除了。如果这个镜像在占用状态,则不会删除。查看验证:

$ docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}'
REPOSITORY   TAG       IMAGE ID       CREATED AT                      SIZE
test         latest    65f677cc947a   2021-08-19 22:38:05 +0800 CST   445MB
1
2
3

其他一些用法:

  • 删除超过 10 天240h前创建的映像:

    $ docker image prune -a --force --filter "until=240h"
    
    1
  • 使用标签删除映像deprecated:

    $ docker image prune --filter="label=deprecated"
    
    1
  • 删除标签maintainer设置为的映像john:

    $ docker image prune --filter="label=maintainer=john"
    
    1
  • 删除没有maintainer标签的映像:

    $ docker image prune --filter="label!=maintainer"
    
    1
  • 删除维护者标签未设置为的映像john:

    $ docker image prune --filter="label!=maintainer=john"
    
    1

注意:在prune删除任何内容之前,系统会提示您进行确认,但不会显示可能删除的内容列表。此外,docker image ls不支持负过滤,因此很难预测实际将删除哪些映像。

# 3,定义容器日志大小

在 docker 环境部署之后,我们可以直接通过配置文件参数来定义单个容器日志的大小,在/etc/docker/daemon.json 添加如下配置后重启 docker:

"log-opts": {
    "max-size":"300M",
    "max-file":"3"
  },
"data-root": "/data/docker/docker-data/"
1
2
3
4
5

注意:已存在的容器需要删除重建后才可以生效,因此尽量在 docker 投入生产之前进行配置。

参数说明:max-size 指定日志文件最大空间,max-file 指定日志滚动的次数,以上配置单个容器最大日志为 900M。data-root 指定 docker 数据目录。

微信 支付宝
上次更新: 2024/07/04, 22:40:37
Docker笔记之修改默认网段
centos镜像添加chrome浏览器以及中文字体

← Docker笔记之修改默认网段 centos镜像添加chrome浏览器以及中文字体→

最近更新
01
学习周刊-总第212期-2025年第21周
05-22
02
从赵心童世锦赛夺冠聊聊我的斯诺克情缘
05-16
03
学习周刊-总第211期-2025年第20周
05-15
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式