清洁docker / overlay2 /是否安全

问题描述 投票:24回答:4

我在AWS EC2上运行了一些docker容器,/ var / lib / docker / overlay2文件夹的磁盘大小增长得非常快。

我想知道删除其内容是否安全?或者如果docker有某种命令来释放一些磁盘使用量。

谢谢!


更新:

我实际上已经尝试了docker system prune -a,它已经回收了0Kb。

我的/ docker / overlay2磁盘大小也比docker system df的输出大得多

在阅读了docker文档和BMitch的回答之后,我认为触摸这个文件夹是一个愚蠢的想法,我会尝试其他方法来回收我的磁盘空间。

docker docker-compose docker-machine
4个回答
16
投票

Docker使用/ var / lib / docker存储图像,容器和本地命名卷。删除此操作可能会导致数据丢失,并可能导致引擎无法运行。 overlay2子目录专门包含图像和容器的各种filesystem layers

要清理未使用的容器和图像,请参阅docker system prune。还有删除卷甚至标记图像的选项,但由于数据丢失的可能性,默认情况下不会启用它们。


2
投票

我有这个问题......这是巨大的日志。日志在这里:

/var/lib/docker/containers/<container id>/<container id>-json.log

您可以在运行命令行或撰写文件中对此进行管理。看到:Configure logging drivers

我个人将这3行添加到我的docker-compose.yml文件中:

my_container:
  logging:
    options:
      max-size: 10m

0
投票

快速增长的overlay2也有问题

/var/lib/docker/overlay2 - 是一个文件夹,其中docker存储容器的可写层。 docker system prune -a - 只有在容器被停止和移除时才可以工作。

在我的我能够通过进入overlay2和调查弄清楚消耗空间是什么。

该文件夹包含其他散列命名文件夹。每个都有几个文件夹,包括diff文件夹。

diff文件夹 - 包含由具有精确文件夹结构的容器写入的实际差异作为您的容器(至少在我的情况下 - ubuntu 18 ...)

所以我用du -hsc /var/lib/docker/overlay2/LONGHASHHHHHHH/diff/tmp弄清楚我的容器里面的/tmp是被污染的文件夹。

所以作为一种解决方法,我使用-v /tmp/container-data/tmp:/tmp命令的docker run参数将内部/tmp文件夹映射到主机并在主机上设置cron来清理该文件夹。

cron任务很简单:

  • sudo nano /etc/crontab
  • */30 * * * * root rm -rf /tmp/container-data/tmp/*
  • save and exit

注意:overlay2是系统docker文件夹,他们可以随时更改它的结构。以上所有内容都是基于我在那里看到的。不得不进入docker文件夹结构只是因为系统完全没有空间,甚至不允许我ssh到docker容器。


0
投票

我发现这对我来说效果最好:

docker image prune --all

默认情况下,Docker不会删除命名图像,即使它们未使用。此命令将删除未使用的图像。

请注意,图像中的每个图层都是/usr/lib/docker/overlay2/文件夹中的文件夹。


-2
投票

我用“docker system prune -a”清理了卷和overlay2下的所有文件

    [root@jasontest volumes]# docker system prune -a
    WARNING! This will remove:
            - all stopped containers
            - all networks not used by at least one container
            - all images without at least one container associated to them
            - all build cache
    Are you sure you want to continue? [y/N] y
    Deleted Images:
    untagged: ubuntu:12.04
    untagged: ubuntu@sha256:18305429afa14ea462f810146ba44d4363ae76e4c8dfc38288cf73aa07485005
    deleted: sha256:5b117edd0b767986092e9f721ba2364951b0a271f53f1f41aff9dd1861c2d4fe
    deleted: sha256:8c7f3d7534c80107e3a4155989c3be30b431624c61973d142822b12b0001ece8
    deleted: sha256:969d5a4e73ab4e4b89222136eeef2b09e711653b38266ef99d4e7a1f6ea984f4
    deleted: sha256:871522beabc173098da87018264cf3e63481628c5080bd728b90f268793d9840
    deleted: sha256:f13e8e542cae571644e2f4af25668fadfe094c0854176a725ebf4fdec7dae981
    deleted: sha256:58bcc73dcf4050a4955916a0dcb7e5f9c331bf547d31e22052f1b5fa16cf63f8
    untagged: osixia/openldap:1.2.1
    untagged: osixia/openldap@sha256:6ceb347feb37d421fcabd80f73e3dc6578022d59220cab717172ea69c38582ec
    deleted: sha256:a562f6fd60c7ef2adbea30d6271af8058c859804b2f36c270055344739c06d64
    deleted: sha256:90efa8a88d923fb1723bea8f1082d4741b588f7fbcf3359f38e8583efa53827d
    deleted: sha256:8d77930b93c88d2cdfdab0880f3f0b6b8be191c23b04c61fa1a6960cbeef3fe6
    deleted: sha256:dd9f76264bf3efd36f11c6231a0e1801c80d6b4ca698cd6fa2ff66dbd44c3683
    deleted: sha256:00efc4fb5e8a8e3ce0cb0047e4c697646c88b68388221a6bd7aa697529267554
    deleted: sha256:e64e6259fd63679a3b9ac25728f250c3afe49dbe457a1a80550b7f1ccf68458a
    deleted: sha256:da7d34d626d2758a01afe816a9434e85dffbafbd96eb04b62ec69029dae9665d
    deleted: sha256:b132dace06fa7e22346de5ca1ae0c2bf9acfb49fe9dbec4290a127b80380fe5a
    deleted: sha256:d626a8ad97a1f9c1f2c4db3814751ada64f60aed927764a3f994fcd88363b659
    untagged: centos:centos7
    untagged: centos@sha256:2671f7a3eea36ce43609e9fe7435ade83094291055f1c96d9d1d1d7c0b986a5d
    deleted: sha256:ff426288ea903fcf8d91aca97460c613348f7a27195606b45f19ae91776ca23d
    deleted: sha256:e15afa4858b655f8a5da4c4a41e05b908229f6fab8543434db79207478511ff7

    Total reclaimed space: 533.3MB
    [root@jasontest volumes]# ls -alth
    total 32K
    -rw-------  1 root root  32K May 23 21:14 metadata.db
    drwx------  2 root root 4.0K May 23 21:14 .
    drwx--x--x 14 root root 4.0K May 21 20:26 ..

-5
投票

警告:请勿在生产系统中使用

/# df
...
/dev/xvda1      51467016 39384516   9886300  80% /
...

好的,我们先试试系统修剪

#/ docker system prune --volumes
...
/# df
...
/dev/xvda1      51467016 38613596  10657220  79% /
...

不是很好,似乎它清理了几兆字节。我们现在发疯了:

/# sudo su
/# service docker stop
/# cd /var/lib/docker
/var/lib/docker# rm -rf *
/# service docker start
/var/lib/docker# df
...
/dev/xvda1      51467016 8086924  41183892  17% /
...

太好了!请记住,除了丢弃服务器之外,不建议使用此功能。此时,Docker的内部数据库将无法找到任何这些叠加层,并可能导致意外后果。

© www.soinside.com 2019 - 2024. All rights reserved.