docker占用磁盘空间清理

自从接触并使用docker就明显的发现一个问题,在磁盘空间中有一个文件docker.raw一直在持续的增大,在Mac路径/Users/xiexiang/Library/Containers下也能看到一个名叫com.docker.docker的文件非常的大,以前一直以为是因为下载了太多的镜像或者run了太多的容器造成的,在使用过程中也尝试清理过镜像和容器,但是docker.raw文件不会有一点点的变小。

以下方法可以解决Docker磁盘占用情况,可以根据自身情况测试,本人亲测可用。

当然看文章前首先声明:对于磁盘空间比较大的Mac用户不用在意空间大小或者Windows用户,可以忽略本篇文章。

Docker System命令

它是用于管理磁盘空间

1
docker system df

类似于linux上的df命令,用于查看Docker的磁盘使用情况:
docker
可知,Docker镜像占用了808M磁盘,Docker容器占用了436KB磁盘,Docker数据卷占用了17KB磁盘。因为之前盲目清理过docker,但是并没有改变docker的占用空间。

1
docker system prune -a

docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了……所以使用之前一定要想清楚吶。

再次执行docker system df你会发现上图中的数据会变小很多。

执行后,如果是Mac用户,你可以尝试看下你的总的磁盘空间是否有下降,同时在 /Library/Containers下查看com.docker.docker的大小,正常情况下会小很多,这样会节省出很多的磁盘空间出来。

手动清理Docker镜像/容器/数据卷

对于旧版的Docker(版本1.13之前),是没有Docker System命令的,因此需要进行手动清理。这里给出几个常用的命令:

删除所有关闭的容器:

1
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm

删除所有dangling镜像(即无tag的镜像):

1
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

删除所有dangling数据卷(即无用的Volume):

1
docker volume rm $(docker volume ls -qf dangling=true)

谢翔 wechat
坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------
0%