如何清理docker占用空间
近日见闻
- 今儿忙,没空看新闻
docker清理空间
一句命令查看占用空间:
docker system df
Type 列出docker使用磁盘的四种类型:包括images占用空间、containers容器占用空间、local volumes挂在本地数据卷的空间、构建中产生的缓存空间,RECLAIMABLE 是可回收大小。
创建一个容器时,都会有一些文件和目录被创建,例如:
/var/lib/docker/containers/ID目录,如果容器使用了默认的日志模式,他的所有日志都会以JSON形式保存到此目录下。
/var/lib/docker/overlay2 目录下含有容器的读写层,如果容器使用自己的文件系统保存了数据,那么就会写到此目录下。
删除所有已经停止的容器:
docker container prune
是删除停止的容器,如果想删除所有容器(包括停止的、正在运行的),可以使用下面这2个命令:
$ docker rm -f $(docker ps -aq)
$ docker container rm -f $(docker container ls -aq)
有一些镜像是隐形的:
子镜像,就是被其他镜像引用的中间镜像,不能被删除。 悬挂状态的镜像,就是不会再被使用的镜像,可以被删除。
下面的命令列出所有悬挂状态的镜像:
$ 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
删除 build cache 可以使用命令:
$ docker builder prune
docker 系统层面也有 prune 这个子命令,可以一键清理没用的空间:
$ docker system prune