当前位置: 首页 > 知识库问答 >
问题:

清洁docker/overlay2安全吗/

夏晋
2023-03-14

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

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

更新:

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

此外,my/docker/overlay2磁盘大小比docker system df的输出大得多

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

共有3个答案

宗政颖逸
2023-03-14

我有这个问题。。。那是一根巨大的圆木。日志如下:

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

您可以在运行命令行或撰写文件中管理它。请参阅:配置日志记录驱动程序

我个人将这三行添加到我的docker compose中。yml文件:

my_container:
  logging:
    options:
      max-size: 10m
谢建业
2023-03-14

我发现这对我最有效:

docker image prune --all

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

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

韩宜春
2023-03-14

Docker使用/var/lib/Docker存储图像、容器和本地命名卷。删除此项可能会导致数据丢失,并可能导致引擎停止运行。overlay2子目录专门包含用于图像和容器的各种文件系统层。

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

$ docker system prune --help

Usage:  docker system prune [OPTIONS]

Remove unused data

Options:
  -a, --all             Remove all unused images not just dangling ones
      --filter filter   Provide filter values (e.g. 'label=<key>=<value>')
  -f, --force           Do not prompt for confirmation
      --volumes         Prune volumes

剪枝永远不会删除的内容包括正在运行的容器、这些容器上的日志以及这些容器所做的文件系统更改。此外,在这个垃圾回收机制中,docker可能看不到在正常docker文件夹之外创建的任何东西。这可能来自写入此目录的其他应用程序,或者docker引擎的先前配置(例如,从AUFS切换到overlay2,或者可能在启用用户名称空间之后)。

如果忽略了这个建议,并且从这个文件系统中删除了一个像overlay2这样的文件夹,会发生什么?容器文件系统是从文件系统层集合中组装起来的,overlay2文件夹是docker执行其中一些挂载的地方(当容器运行时,您将在挂载的输出中看到它们)。在使用中删除其中一些会从正在运行的容器中删除文件系统的块,并且可能会破坏从受影响的映像启动新容器的能力。

要完全刷新docker到干净状态,请停止docker引擎(System ctl Stop docker)并删除整个目录(不仅仅是overlay2文件夹),并使用rm-rf /var/lib/docker,然后重新启动docker(System ctl start docker)。引擎将在没有任何图像、容器、卷、用户创建的网络或群状态的情况下重新启动。

 类似资料:
  • 问题内容: 我在AWS EC2上运行了一些Docker容器,/ var / lib / docker / overlay2文件夹的磁盘大小增长非常快。 我想知道删除其内容是否安全?或者docker是否具有某种命令来释放某些磁盘使用量。 更新: 我实际上已经尝试过,它回收了0Kb。 而且我的/ docker / overlay2磁盘大小比来自的输出大得多 阅读docker文档和BMitch的答案后,

  • 问题内容: 从我有很多的用户输入和…此刻我总是写.. 我想知道您是否可以创建一个可以立即保护,转义和清理/ 数组的函数,因此您不必在每次使用用户输入等时都进行处理。 我在想一个功能,例如,和它里面,它应该做的,,,(我想这是所有做它的清洁与安全),然后返回。 那有可能吗?制作一个适用于和的函数,因此您只需执行以下操作: 因此,在以后的代码中,当您使用eg 或时,它们是否已固定,剥离等? 试了一下自

  • 问题内容: 我有一个带有2个容器(Jenkins和Nexus,都有各自的命名卷)的docker环境。我每天都有一个cron作业,该作业会删除未使用的容器和图像。一切正常。但是问题出在我的devicemapper内部: 我可以在docker文件夹中放置每个文件夹:卷(很大,但是在我看来这是正常的): 容器: 图片: Devicemapper: 是7.3G 是8.1G Docker信息: 这个空间是什

  • 通过docker system prune-a清理 但只清除了9GB

  • 我是学习java编程的新手!我想在maven项目中制作一个。jar。在运行此命令后,我将得到以下错误消息:

  • 我正在使用Tycho插件来编译一个Eclipse插件项目。当我运行命令时 我的生成通行证 我的生成失败,原因如下: 失败stacktrace为: 从我在Maven上可以找到的所有东西来看,调用阶段应该隐式地触发阶段。这是怎么回事?