docker占用磁盘太大,如何清理

docker 占用的空间可以通过下面的命令查看:

docker system df


TYPE 列出了docker 使用磁盘的 4 种类型,TOTAL 表示该类型资源的总数,ACTIVE 表示当前正在使用的数量,SIZE 表示该类型资源的总大小,RECLAIMABLE 表示可以回收的空间大小。

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

镜像的磁盘占用
删除悬挂状态的镜像,即 none 状态的镜像

docker image prune

如果想删除所有镜像,可以使用下面的命令:

docker image rm $(docker image ls -q)

注:正在被容器使用的镜像是不能被删除的。

容器的磁盘占用
删除所有停止的容器

docker container prune

如果想删除所有容器(包括停止的、正在运行的)

docker rm -f $(docker ps -aq)
或者
docker container rm -f $(docker container ls -aq)

数据卷的磁盘占用
删除不再使用的数据卷

docker volume prune

Build Cache 的磁盘占用
删除 build cache 可以使用命令

docker builder prune

一键清理
通过上面的说明,我们知道了像容器、镜像、数据卷都提供了 prune这个子命令,帮助我们回收空间。
其实,docker 系统层面也有 prune 这个子命令,可以一键清理没用的空间:

docker system prune

这个命令用于清理 Docker 系统中的未使用资源,包括未使用的镜像、停止的容器、未被使用的网络和挂载点等。
这个命令慎用

posted @ 2023-10-25 15:05  买定灬离手  阅读(964)  评论(0编辑  收藏  举报