不得不知的docker system
docker system df
类似于linux上的df,用于查看docker的磁盘使用情况。
docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(即无 tag 的镜像)。docker system prune -a命令清理得更加彻底,可以将没有容器使用 Docker 镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都删掉了…所以使用之前一定要想清楚吶。
手动清理
删除所有关闭容器:
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
删除所有dangling镜像 即没有tag的镜像
docker rmi $(docker images | grep "^" | awk "{print $3}")
删除所有dangling数据卷 即没有使用的volume
docker volume rm $(docker volume ls -qf dangling=true)
除此之外还需要注意日志文件
du -hs /var/lib/docker
可以使用truncate命令情况overlay
truncate -s 0 /var/lib/docker/containers/a376aa694b22ee497f6fc9f7d15d943de91c853284f8f105ff5ad6c7ddae7a53/*-json.log
上面的操作治标不治本,根本上解决问题,需要限制log的大小
如果清理了之后发现磁盘空间并没有减少,你可能需要重启一下docker,这种情况不多见