Docker的使用极大地方便了应用的发布和维护,但同时Docker也会造成占用过多磁盘的问题。因此定期清理Docker占用的磁盘空间是很有必要的,以下将介绍几种清理方式:
1.13版本前Docker
1.13版本前的Docker只能手动清理,清理的内容主要是无用的Volume、无tag的镜像、停止的容器和占用空间过大的容器日志:
1.删除Docker镜像/容器/数据卷
删除所有停止的容器:
$ docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
删除所有dangling镜像(即无tag的镜像):
$ docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
删除所有dangling数据卷(即无用的Volume):
$ docker volume rm $(docker volume ls -qf dangling=true)
2.删除容器日志
$ truncate -s 0 /var/lib/docker/containers/d1e4a54a930cc1c27d1f756a79ffbc259cd30eb80c759e680725465aee86d9fc/*-json.log
d1e4a54a930cc1c27d1f756a79ffbc259cd30eb80c759e680725465aee86d9fc
:通过docker ps
命令可知,该id与容器id相同。
*-json.log
:docker中日志文件以该格式结尾
1.13版本及以上Docker
docker system prune
命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a
命令清理得更加彻底,可以将没有容器使用的Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了