限制Docker中现有容器的日志文件大小

时间:2020-03-29 19:56:33

标签: docker size logfile

我是Docker的新手,不知道日志文件的大小是无限的。

现在我有两个要保留的容器正在运行,但是限制了它们的日志文件的大小(当前大于40GB)。

对于现有容器,这是可能的,因为没有使用任何docker start命令的选项。

1 个答案:

答案 0 :(得分:0)

我最近也遇到了这个问题(( 3个容器占用了68GB(!)),所以我为自己做了一些笔记;我将它们粘贴在这里。

阻止Docker容器将容器日志填满磁盘:

在Docker桌面UI的“高级”部分中,添加以下内容(最大日志大小为5MB /最大日志数500,根据您的偏好进行调整):

      "log-driver": "json-file",
      "log-opts": {
        "max-size": "5m",
        "max-file": "500"
      }

像我一样,您可能还需要清理所有这些日志中的Docker VM:

清理日志文件(容器)(SSH进入VM,chroot /host进行此操作):

列出他们:

find /var/lib/docker/containers/ -type f -name "*.log"

在下面的示例中,从此处选择要删除的内容,方法是编辑路径。要删除,只需在命令末尾添加-delete

即:

find /var/lib/docker/containers/ -type f -name "*.log" -delete

您最后想做的是清除所有垃圾后优化Docker VM:

要优化/缩小VM(使用Powershell):

Mount-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx" -ReadOnly

Optimize-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx" -Mode Full

Dismount-VHD -Path "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\DockerDesktop.vhdx"