查看docker工作目录占用磁盘情况

du -hs /var/lib/docker

docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况

docker system df

自动清理磁盘

docker system prune
	该指令默认会清除所有如下资源:
	已停止的容器(container)
	未被任何容器所使用的卷(volume)
	未被任何容器所关联的网络(network)
	所有悬空镜像(image)
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 --all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
可以添加 -f 或 --force 参数用以忽略相关告警确认信息

注意:docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。
注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…
所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的  Docker 镜像

镜像清理

如果通过 docker system df 分析,是镜像占用了过高空间。则可以根据业务情况,评估相关镜像的使用情况。对于悬空和未使用的镜像, 可以使用如下指令手工清理

删除所有悬空镜像,但不会删除未使用镜像:

# 删除所有悬空镜像,但不会删除未使用镜像:
[root@localhost ~]# docker rmi $(docker images -f "dangling=true" -q)

# 删除所有未使用镜像和悬空镜像。
# 【说明】:轮询到还在被使用的镜像时,会有类似"image is being used by xxx container"的告警信息,所以相关镜像不会被删除,忽略即可。
docker rmi $(docker images-q)

卷清理

如果通过 docker system df 分析,是卷占用了过高空间。则可以根据业务情况,评估相关卷的使用情况。对于未被任何容器调用的卷(-v 结果信息中,“LINKS” 显示为 0),可以使用如下指令手工清理

# 删除所有未被任何容器关联引用的卷:
[root@localhost ~]# docker volume rm $(docker volume ls -qf dangling=true)

# 也可以直接使用如下指令,删除所有未被任何容器关联引用的卷(但建议使用上面的方式)
# 【说明】轮询到还在使用的卷时,会有类似"volume is in use"的告警信息,所以相关卷不会被删除,忽略即可。
docker volume rm $(docker volume ls -q)

容器清理

# 删除所有已退出的容器
[root@localhost ~]# docker rm -v $(docker ps -aq -f status=exited)
# 删除所有状态为 dead 的容器
[root@localhost ~]# docker rm -v $(docker ps -aq -f status=dead)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐