【问题标题】:How to deal with huge .m2 directory in the docker overlay/diff directory?如何处理 docker overlay/diff 目录中巨大的 .m2 目录?
【发布时间】:2020-02-05 14:12:58
【问题描述】:

我有一个概念要在这里理解,以解决我在 docker 容器和它们的磁盘使用情况方面面临的问题。

当我深入了解容器的覆盖目录时(例如,在 /var/lib/docker/overlay2/0ec5c07ba6ae1692ad127173/diff/home/bamboo/.m2/repository 中)我看到很多不必要的文件磁盘空间〜200G,我想了解为什么这些文件仍在此目录中。

我假设这与 docker top most writable layer 概念有关,以跟踪更改。但我想知道这些文件是否应该在任何时候被 Docker 删除?如果没有,我们可以在不影响容器的情况下删除它们吗?

我已经尝试过Docker prune 命令试图删除这些文件,但没有成功!

如果有人能分享一些关于此的信息以帮助我理解这个概念并解决我的问题,我将不胜感激。

提前致谢!

【问题讨论】:

    标签: linux maven docker memory-management


    【解决方案1】:

    docker prune 仅适用于非活动容器

    docker prune 只清除未使用的空间。 IE。活动容器未使用的图像、网络和卷。

    所以,也许一些活动容器使用OverlayFS 层和.m2 缓存

    .m2 用于缓存

    .m2 目录用于存储Maven 存储库缓存。 有关说明,请参阅this answer。 您可以使用find 工具清理它

    例如:

    sudo find /var/lib/docker/overlay2 -name '.m2' -type d -exec rm -rf {}\repository \;
    

    【讨论】:

    • 感谢您的回答!将“.m2”目录挂载到主机目录而不是写在覆盖目录上也是一个好习惯吗? @亚森
    • 嗨。我不确定为什么在 docker 上下文中需要.m2。既然容器被推荐用于非持久性使用 - 为什么你在 docker 中使用 maven?
    • 我正在使用 Bamboo,所以设置是这样的:我有一台 Linux 机器我有一个装有 Maven、ANT 等软件的容器。在容器内,我有坐在上面的竹代理,用于构建。所以在这种情况下使用 Maven。还有其他有效的方法吗?
    猜你喜欢
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 2016-09-14
    • 2016-06-10
    • 2019-10-18
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    相关资源
    最近更新 更多