如何正确清理 docker devicemapper 文件夹?

Posted

技术标签:

【中文标题】如何正确清理 docker devicemapper 文件夹?【英文标题】:How to clean docker devicemapper folder properly ? 【发布时间】:2017-10-29 20:41:45 【问题描述】:

我有一些关于存储的问题。 /var/lib/docker/devicemapper/ 文件夹占用了我 50% 的存储空间。

在文件夹/var/lib/docker/devicemapper/mnt中,我有很多空文件夹。

如何正确清理 docker devicemapper 并删除所有未使用的映射?

【问题讨论】:

【参考方案1】:

使用最新版本的 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 进行彻底清理。也必须小心使用。

以上是关于如何正确清理 docker devicemapper 文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mac 上将 docker 存储驱动程序更改为 devicemapper

docker aufs 到 devicemapper docker 容器和图像迁移

Docker /var/lib/docker/devicemapper/devicemapper 使用 2.7GB

Docker存储驱动devicemapper介绍和配置

Docker存储驱动devicemapper介绍和配置

Docker 文件系统-Devicemapper 原理解析(32)