docker磁盘清理

Docker:清理Docker占用的磁盘空间

容器清理

  • docker container prune : 仅删除停止运行的容器。
  • docker rm -f $(docker ps -aq) : 删除所有容器(包括停止的、正在运行的)。
  • docker container rm -f $(docker container ls -aq) : 同上。

镜像清理
docker rmi <image id> :通过镜像的id来删除指定镜像。
有一些镜像是隐形的:

  • 子镜像,就是被其他镜像引用的中间镜像,不能被删除。
  • 悬挂状态的镜像,就是不会再被使用的镜像,可以被删除。

其他命令:

  • docker image ls -f dangling=true : 可以列出所有悬挂状态的镜像
    并使用命令 docker image rm $(docker image ls -f dangling=true -q) 或 docker image prune进行删除。
  • docker image rm $(docker image ls -q) :删除所有镜像。但正在被容器使用的镜像无法删除。

数据卷清理

  • docker volume rm $(docker volume ls -q) :删除不再使用的数据卷。
  • docker volume prune :同上。

缓存清理
Docker 18.09 引入了 BuildKit ,提升了构建过程的性能、安全、存储管理等能力。
docker builder prune :删除 build cache。

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

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 镜像都删掉了。

 

docker磁盘垃圾清理

docker资源占用情况查看

docker用久之后,会遇到磁盘占用越来越大的情况。这个时候可以用docker system df命令来查看docker的资源占用情况。

[rc@localhost ~]$ docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          2         1         448.5MB   13.26kB (0%)
Containers      1         0         68B       68B (100%)
Local Volumes   1         1         219.5MB   0B (0%)
Build Cache     0         0         0B        0B

这里分别列出了docker中不同资源类型所占用的磁盘空间,RECLAIMABLE表示当前该种类资源可以回收的空间大小。其中的Build Cache表示平时构建镜像过程中产生的缓存数据,往往是垃圾资源占用的大头。

docker资源清理

镜像资源清理

docker image prune命令可以清理所有标签为none的镜像。

[rc@localhost ~]$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

也可以手动写出删除的条件,不过这样命令会长一些,比较难记。

docker rmi $(docker images -f dangling=true -q)

容器资源清理

docker container prune命令可以清理所有停止运行的容器。

[rc@localhost ~]$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N]

也可以手动写出删除的条件,不过这样命令会长一些,比较难记。

docker rm $(docker ps -f status=exited -q)

数据卷和网络资源清理

数据卷资源清理。

[rc@localhost ~]$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N]

网络资源清理。

[rc@localhost ~]$ docker network prune
WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue? [y/N]

构建缓存清理

docker用久了,Build Cache那一项可能占据很大的空间,这时候可以用来清理无用的构建缓存。

[rc@localhost ~]$ docker builder prune
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N]

参考资料

转载:docker磁盘垃圾清理 - HachikoT - 博客园
Docker:清理Docker占用的磁盘空间 - 知乎

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值