0. 概述

在使用 Docker 的时候,一个很大的痛点就是用着用着磁盘就被 Docker 的 Volume 和 Image 给占满了,为了解决这个问题,我在这篇文章记录一下 docker system prune 的操作。

1. 用法

[[email protected]]# docker system prune --help

Usage:  docker system prune [OPTIONS]

Remove unused data

Options:
  -a, --all             Remove all unused images not just dangling ones
      --filter filter   Provide filter values (e.g. 'label=<key>=<value>')
  -f, --force           Do not prompt for confirmation
      --volumes         Prune volumes

2. 详解

prune 可以用于清理容器,网络,镜像,Volume 等。如果不加参数,那么清理的内容包括:

但是这不会删除 Volume,因为 Docker 认为 Volume 的价值很高,可能储存了珍贵的数据,所以,如果你墙裂要求要删的话,试一下:

[[email protected]]# docker system prune -a --volumes

这里 -a 参数也不会删除 Volume,是后面的 --volumes 参数其效果的,它会删除的内容包括:

3. 过滤器

当然,如果你想要更加精准的删除的话,可以给各种资源打上标签,这样你就可以通过标签保留你想要的资源了。如果没有标签,也没有关系,有一个默认的标签 util,你可以用它删除一些太老的容器之类的,例如:

[[email protected]]# docker container prune --filter "until=24h"

4. Ref