1 清理无用的镜像和关闭的容器
1.1 使用docker system df查询Docker 的磁盘使用情况
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 0 0 0 B 0 B
Containers 0 0 0 B 0 B
Local Volumes 0 0 0 B 0 B
TYPE 列出了 Docker 使用磁盘的 4 种类型:
-
Images :所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。
-
Containers :运行的容器占用的空间,表示每个容器的读写层的空间。
-
Local Volumes :容器挂载本地数据卷的空间。
-
Build Cache :镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)。
-
RECLAIMABLE:磁盘可回收大小。
1.2 清理无用的镜像和关闭的容器
-
docker system prune : 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(即无 tag 的镜像)。
-
docker system prune -a : 清理得更加彻底,可以将没有容器使用 Docker镜像都删掉。
注意:这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都会删掉。
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all dangling images
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B
不带-f或--force是交互式执行,需要输入y确认。
$ docker system prune -h
Flag shorthand -h has been deprecated, please use --help
Usage: docker system prune [OPTIONS]
Remove unused data
Options:
-a, --all Remove all unused images not just dangling ones
-f, --force Do not prompt for confirmation
--help Print usage
2 清理有问题的容器
如果清理了无用的镜像和容器磁盘水位还是比较高。那大概率是某个容器有问题,比如疯狂往磁盘上记日志。
$ docker system df -v
Images space usage:
REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS
Containers space usage:
CONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED STATUS NAMES
Local Volumes space usage:
VOLUME NAME LINKS SIZE
可以看到每次CONTAINER的size。然后就是docker exec -it 进去看看,如果日志输出不正常就需要反馈给开发,不用往本地目录里打日志文件了。