Dozzle:一個不儲存日誌的即時容器日誌檢視器
容器的即時日誌檢視器。支援 Docker、Swarm 和 K8s。
秒懂
- 它是什麼?
- 輕量級 Go 應用,用於即時檢視 Docker 日誌,支援 Swarm 和 agent 模式。
- 適合誰用?
- Dozzle 是一個小型的即時日誌檢視器,不儲存任何日誌,也不試圖取代日誌封存。它支援 Docker 和 Swarm,倉庫描述還提到 Kubernetes,但 README 沒有記錄該路徑。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫在最近一天內有新的提交。
- 用什麼語言寫的?
- 主要是 Go(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
amir20-dozzle-deep-analysis|即時 Docker 日誌檢視,不儲存日誌檔案
amir20-dozzle-deep-analysis|即時 Docker 日誌檢視,不儲存日誌檔案 的專案脈絡:Dozzle 是一個基於 Web 的應用,直接顯示 Docker 守護行程輸出的容器日誌。README 明確表示它不儲存任何日誌檔案,因此該工具用於即時觀察,而非歷史檢索。倉庫元資料將其描述為容器的即時日誌檢視器,支援 Docker、Swarm 和 K8s。README 本身記錄了 Swarm 和 agent 模式,但沒有提及 Kubernetes。專案使用 Go 編寫,採用 MIT 授權。倉庫元資料顯示該專案有 13,945 個星標和 595 個 fork。
amir20-dozzle-deep-analysis|功能列表及其邊界
amir20-dozzle-deep-analysis|功能列表及其邊界 的專案脈絡:README 列出了容器名稱的模糊搜尋、日誌的正則搜尋、SQL 查詢搜尋、分割畫面、即時記憶體和 CPU 統計、多使用者認證(支援正向代理授權)、Swarm 模式、agent 模式以及深色模式。它還強調記憶體佔用小是特點之一。Dozzle 已經用數百個容器測試過,但不支援離線搜尋。README 建議 Loggly、Papertrail 或 Kibana 用於完整的搜尋能力,這使 Dozzle 定位在很窄的範圍內。
amir20-dozzle-deep-analysis|使用 Docker、Swarm 和 agent 模式執行 Dozzle
amir20-dozzle-deep-analysis|使用 Docker、Swarm 和 agent 模式執行 Dozzle 的專案脈絡:基本執行指令會掛載 Docker Unix 套接字和資料卷:`docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -v dozzle_data:/data -p 8080:8080 amir20/dozzle:latest`。介面出現在 localhost:8080。Compose 範例使用相同的套接字和命名卷。對於 Swarm,README 展示了一個帶有 `DOZZLE_MODE=swarm` 的全域服務。對於多個主機,agent 模式使用 `agent` 引數啟動,並暴露埠 7007。關於認證、遠端主機和常見問題的高階選項,README 連結到了 dozzle.dev。
amir20-dozzle-deep-analysis|Docker 相容性和 Podman 的解決辦法
amir20-dozzle-deep-analysis|Docker 相容性和 Podman 的解決辦法 的專案脈絡:Dozzle 使用自動 API 協商,README 稱這與大多數 Docker 設定相容,包括 Colima 和 Podman。它要求 Docker Engine 19.03 或更高版本,API 版本 1.40 及以上。在 Podman 上,必須啟用遠端套接字,並在 `podman info` 中可見。如果未啟用,README 指向 socket activation 教學。啟用後,將 Podman 套接字對應到 /var/run/docker.sock 執行 Dozzle。Podman 還需要在 /var/lib/docker 下建立包含 UUID 的 engine-id 檔案,否則 Dozzle 會回報 host not found 錯誤。
amir20-dozzle-deep-analysis|設定、認證和分析
amir20-dozzle-deep-analysis|設定、認證和分析 的專案脈絡:設定遵循 12-factor 模型,設定來自 CLI 旗標或環境變數。README 連結到 dozzle.dev 上支援的環境變數頁面。認證支援基於檔案或正向代理授權,並點名了 Authelia。Dozzle 使用 Google Analytics 收集匿名的使用者設定。這些資料是公開的,可以在 Data Studio 儀表板上檢視,`--no-analytics` 旗標可以關閉。MIT 授權允許使用、複製、修改、合併、發布、分發、再授權和銷售副本,但不提供任何保證。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle 的專案脈絡:程式碼庫包含一個與 Docker 通訊的 Go 後端和一個在瀏覽器中執行的 Vue 前端。如果只修檔案,不需要本機環境。建置需要 Go 1.25 或更高版本、帶 pnpm 的 Node.js 以及 protoc。在 macOS 上可以用 Homebrew 一次安裝;Debian 和 Ubuntu 用 apt 安裝並全域安裝 pnpm。克隆後執行 `pnpm install`、`go install tool` 和一次 `make generate`,然後執行 `make dev`。介面在 localhost:3100。編輯 `assets/pages/index.vue` 會在瀏覽器中熱更新,後端修改會重新啟動服務。故障排除包括 Docker 套接字存取和 protoc 是否在 PATH 中,未解決的問題可提交到 GitHub Discussions。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:先用 README 的 Docker 指令啟動 Dozzle,確認容器標籤、即時串流與日誌篩選,再分別測試 `DOZZLE_AUTH_PROVIDER`、反向代理路徑和 agent 模式;若使用 Podman,必須按檔案指定的相容設定重做連線測試。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:Dozzle 的用途是讀取正在運行的容器日誌,不能把它當成日誌保存係統。測試瀏覽器斷線再重連、容器重啟和大量輸出時的畫面行為,才能確認即時檢視是否符合工作流程。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第1項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第2項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第3項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第4項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第5項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第6項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第7項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第8項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第9項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第10項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第11項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第12項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第13項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第14項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第15項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第16項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
amir20-dozzle-deep-analysis|從原始碼建置 Dozzle:amir20-dozzle-deep-analysis 第17項核對:以專案檔案列出的名稱、指令和設定逐項對照,記錄輸入、輸出、錯誤訊息與版本差異。這項記錄只針對 amir20-dozzle-deep-analysis,不能移植成其他專案的結論。
編輯結論
Dozzle 是一個小型的即時日誌檢視器,不儲存任何日誌,也不試圖取代日誌封存。它支援 Docker 和 Swarm,倉庫描述還提到 Kubernetes,但 README 沒有記錄該路徑。 先用 README 的 Docker 指令啟動 Dozzle,確認容器標籤、即時串流與日誌篩選,再分別測試 `DOZZLE_AUTH_PROVIDER`、反向代理路徑和 agent 模式;若使用 Podman,必須按檔案指定的相容設定重做連線測試。
社群筆記