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

Docker:如何正确地清除Docker容器的日志?

东方淇
2023-03-14

共有1个答案

毋树
2023-03-14

首先是糟糕的答案。在这个问题中,您可以运行一个一行程序:

echo "" > $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)

代替echo的是更简单的:

: > $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)

或者是truncate命令:

truncate -s 0 $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)
dockerd ... --log-opt max-size=10m --log-opt max-file=3
{
  "log-driver": "json-file",
  "log-opts": {"max-size": "10m", "max-file": "3"}
}

类似的日志选项可以传递给单个容器来覆盖这些默认值,从而允许您在单个容器上保存更多或更少的日志。从docker run,如下所示:

docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 ...

或者在组合文件中:

version: '3.7'
services:
  app:
    image: ...
    logging:
      options:
        max-size: "10m"
        max-file: "3"

为了节省额外的空间,可以从json日志驱动程序切换到“本地”日志驱动程序。它使用相同的max-size和max-file选项,但它不是存储在json中,而是使用更快更小的二进制语法。这允许您在相同大小的文件中存储更多日志。其daemon.json条目如下所示:

{
  "log-driver": "local",
  "log-opts": {"max-size": "10m", "max-file": "3"}
}
 类似资料:
  • 问题内容: 我过去经常查看特定容器的日志。 有清除这些日志的好方法吗? 问题答案: 从这个问题出发,您可以运行一种代码: 或有类似的truncate命令: 我对这两个都不满意,因为它们直接修改Docker的文件。当docker将json格式的数据写入文件时,可能会发生外部日志删除,导致部分行并破坏了从cli 读取任何日志的能力。 相反,您可以让Docker自动为您轮换日志。如果使用默认的JSON日

  • 问题内容: 我使用以下命令读取了Docker容器日志输出 我通过调用来将大量数据记录到node.js应用程序的日志中。我需要清理日志,因为它太长了,并且该命令首先运行日志的现有行,然后结束。我该如何清洁使其再次变短?我想查看类似的命令: 但是它似乎不存在。 问题答案: 首先,如果只需要查看较少的输出,则可以让docker只向您显示更新的行: 或者,您可以限制一些行: 要删除Docker for L

  • 我有很多运行docker容器的测试。每个都有一个卷。 如何知道需要删除的卷名? 例如: 手动停止并删除容器后,卷仍然存在。 我不想删除所有卷,因为其中一些卷仍在使用中。

  • 问题内容: 我正在尝试通过以下方式为我的docker容器明确指定IP地址: 我收到以下错误: 我真的不在乎端口10000。我的目标是选择一个特定的容器IP,并将端口9000和9090暴露给主机。 我看了其他一些问题,但没有看到明确的语法来做到这一点 问题答案: 该参数用于将端口从容器转发到主机,而不用于分配IP。 没有简单的方法将固定IP分配给Docker容器,我强烈建议您不要尝试。而是重新架构您

  • 问题内容: 此问题与我是否应该担心多余的,未运行的Docker容器有关?。 我想知道如何删除旧容器。将让你删除一个,但我有很多了。没有提供选择选项(如全部,或按图像名称)。 也许有一个存储这些容器的目录,可以方便地手动删除它们? 问题答案: 从Docker 1.13.x开始, 您可以使用Docker容器prune: 这将删除所有停止的容器,并且应在所有平台上以相同的方式工作。 还有一个Docker

  • 问题内容: 我正在尝试链接2个单独的容器: nginx:最新 的PHP:FPM 问题是php脚本不起作用。也许php-fpm配置不正确。这是源代码,位于我的资源库中。这是文件: 以及我用来基于nginx构建自定义图片的图片: 最后,这是我自定义的Nginx虚拟主机配置: 有人可以帮助我正确配置这些容器以执行php脚本吗? PS 我像这样通过docker-composer运行容器: 从项目根目录。