Ubuntu

清除/刪除 Docker 日誌

  • April 15, 2022

在 GCE 上的 docker 實現中,我們的根文件系統空間不足。

由於圖像本身儲存在單獨的 1TB 卷上,因此圖像本身不應該成為問題。

一個候選者是 Docker 本身儲存的集中式日誌文件(某個地方的 json 文件?),有誰知道這些文件/文件在哪裡/在哪裡,以及我們如何記錄/截斷它們?

首先,我在客戶端和伺服器上都使用 docker 1.1.2,隨著 docker 的快速發展,這個答案對於新版本的 docker 可能已經過時了。

文件位置

找到你的 docker 目錄。在使用 apt/debian 風格系統的系統上,由 docker 儲存庫安裝的軟體包https://get.docker.com/ubuntu使用/var/lib/docker. 該目錄可能在其他系統上位於同一位置(無法確認)。

在下面,containers/**CONTAINER_ID**您會找到有關容器的資訊。在該文件**CONTAINER_ID**-json.log夾中的文件中,您將找到一個包含該容器所有日誌的文件。它可能看起來像一個 json 文件,但不是。這是一個 json 結構的流,每行一個,每行包含一個日誌行(每行以 a 結尾,}下一行以 a 開頭{,因此它不是一個有效的 json 整體)。

範例位置:-/var/lib/docker/containers/05b6053c41a2130afd6fc3b158bda4e605b6053c41a2130afd6fc3b158bda4e6/05b6053c41a2130afd6fc3b158bda4e605b6053c41a2130afd6fc3b158bda4e6-json.log

編輯/更改該文件

我建議您使用該路徑來查看是否是您空間不足的原因,而不是記錄旋轉它們。

我寧願確保容器不會記錄太多行(通過在 dockerfile 中使用 CMD 將處理的輸出重定向到卷中的文件或 /dev/null - 使用配置啟用日誌 - 和然後我會用另一個容器對日誌文件進行 logrotate)

引用自:https://serverfault.com/questions/637996