我对存储有些问题。文件夹/var/lib/docker/devicemapper/占用了50%的存储空间。
在文件夹/var/lib/docker/devicemapper/mnt中,我有许多空文件夹。
我该如何正确清理dockerdevicemapper并删除所有未使用的映射?
我对存储有些问题。文件夹/var/lib/docker/devicemapper/占用了50%的存储空间。
在文件夹/var/lib/docker/devicemapper/mnt中,我有许多空文件夹。
我该如何正确清理dockerdevicemapper并删除所有未使用的映射?
最新版本的Docker可以使用以下命令查看已用空间:
docker system df
并且可以使用以下命令清理:
docker system prune
上述命令结合了对卷、容器、镜像和网络进行清理的prune命令:
docker volume prune
docker container prune
docker image prune
docker network prune
每个命令都有一个--help
选项,记录了一个-f
(--force
)选项,以避免询问。必须小心使用。
-o-
在较旧的Docker版本上,我运行了以下脚本:
#!/bin/bash
# Remove dead containers (and their volumes)
docker ps -f status=dead --format '{{ .ID }}' | xargs -r docker rm -v
# Remove dangling volumes
docker volume ls -qf dangling=true | xargs -r docker volume rm
# Remove untagged ("<none>") images
docker images --digests --format '{{.Repository}}:{{.Tag}}@{{.Digest}}' | sed -rne 's/([^>]):<none>@/\1@/p' | xargs -r docker rmi
# Remove dangling images
docker images -qf dangling=true | xargs -r docker rmi
# Remove temporary files
rm -f /var/lib/docker/tmp/*
-a
在docker image prune -a
中可以帮助进行彻底的清理。但是它必须小心使用。 - Dmitry Ziolkovskiy