
Container Diet
k1lgor · 程式設計
Container Diet 是一套開源命令列工具,會讀取你的 Docker 映像檔與 Dockerfile,然後直接告訴你哪些東西在浪費空間、資安漏洞又藏在哪裡。它會借助你自行挑選的 AI 模型,用平實的語言解釋問題,並提出可以自動套用的修正。你可以手動執行,把它接進 CI/CD 流程,或是在 AI 編輯器裡以 MCP 伺服器的形式呼叫它。

關於 Container Diet
Container Diet 是什麼
Container Diet 是一套用 Go 寫成的 Docker 映像檔最佳化工具。把它指向一個 Dockerfile 或一個正在執行的映像檔,它會逐層拆解,接著把細節交給 AI 模型審閱。輸出的不是一張乾巴巴的清單。這套工具的個性,就像一位嘴上不饒人的營養師,先狠狠吐槽你臃腫的容器,再告訴你該怎麼瘦身。
它解決的問題,凡是出貨容器的人都再熟悉不過。半年前還運作得好好的 Dockerfile,會慢慢長出垃圾層、過期的基礎映像檔、鬆散的權限,一層層堆積,而沒人盯得夠緊。等到映像檔變成 2 GB、有人問起為什麼時,大家才發現。接著就是一陣兵荒馬亂。Container Diet 能及早攔下這些狀況,別讓它進到正式環境。
先講一個誠實的限制:這套工具靠 AI 驅動,所以建議品質取決於你接了哪個模型。透過 Ollama 跑的小型本機模型免費,但回饋比較粗。前沿模型給的答案更犀利,但會消耗你的 token。另外,它是 CLI 加 MCP 伺服器,不是圖形介面。如果你不常在終端機裡打滾,會有學習曲線。
開始使用
- 用
go install github.com/k1lgor/container-diet/cmd/cli@latest安裝 CLI,執行檔就會落在你的 Go 執行檔路徑。 - 執行
container-diet init-config產生設定檔,然後打開~/.config/container-diet/config.yaml,把你想要的 AI 供應商那行取消註解。 - 貼上供應商的 API 金鑰,或是改指向本機的 Ollama 實例,如果你不想按次付費。
- 用
container-diet analyze --dockerfile Dockerfile --auto-fix分析檔案,取得建議以及一份最佳化過的Dockerfile.diet。 - 想讓結果餵進 CI 流程或其他腳本時,加上
--format json。
產品資訊
快速了解 Container Diet 的定價、支援平台與效能。
適合對象
這項工具最適合的使用者、任務與情境。
使用者
- 出貨 Docker 映像檔、想在發布前多一雙眼睛檢查的後端與 DevOps 工程師。
- 預算有限、自己跑容器的獨立開發者,因為搭配本機 Ollama 模型時這套工具完全免費。
- 想統一 Dockerfile 標準的團隊,他們需要一致且自動化的審閱,而非臨時補破網。
任務
- 縮減映像檔大小:分析器會標出臃腫的層、不必要的套件,以及沒有鎖定版本的基礎映像檔,讓你能換成更精簡的版本。
- 資安審閱:在出貨前,它會點出 root 使用者、所有人可寫的權限,以及外洩的 SSH。
- CI/CD 關卡:JSON 輸出讓流程能在 Dockerfile 違反最佳做法時判建置失敗,避免草率的變更悄悄溜進正式環境而沒人察覺。
情境
- 清理一份歷經多年快速修補、早已雜亂不堪的舊 Dockerfile。
- 接手新專案時,檢查它的容器設定是否遵循任何合理的標準。
- 透過 MCP 整合,請 AI 編碼助理直接在編輯器裡審閱 Dockerfile。
主要功能
多供應商 AI 後端
Container Diet 不會把你綁死在單一家 AI 供應商。它內建 12 家以上供應商的轉接器,包括 OpenAI、Anthropic、OpenRouter、Groq、DeepSeek、Mistral、xAI、Perplexity、Moonshot 與 Hugging Face。你也可以指向自訂端點,或透過 Ollama 完全離線執行。切換靠一個旗標,不用重寫。一個字,搞定。
自動修正產生
--auto-fix 旗標不只給建議。它會在原始檔旁寫出一份 Dockerfile.diet,把建議的變更直接套好。你檢視差異,留下可用的,其餘丟掉。它把一長串抱怨變成你真正能執行的東西。不必再手動複製貼上程式片段。
Docker 映像檔分層分析
除了 Dockerfile,這套工具也會檢查真實映像檔。它能從本機 daemon 讀取、用 --remote 從註冊表拉取,或自動抓取缺少的映像檔。你會拿到每一層重量的細目,這是找出不是你自己建構的容器裡肥肉最快的方法。哪一層是元凶?報告直接告訴你。
給 AI 編輯器用的 MCP 伺服器
Container Diet 同時可作為 Model Context Protocol 伺服器,所以 Claude Desktop、Cursor、Claude Code 與 Codex 等助理都能直接呼叫它。它提供四項工具,其中一項能在不花 AI token 的情況下回傳快速的映像檔指標。MCP 設定裡不必放 API 金鑰,因為伺服器會從你既有的設定檔讀取。
適合 CI/CD 的 JSON 輸出
加上 --format json,分析結果就會以結構化資料回傳,附上建議文字與產生的修正。當流程需要解析結果、決定建置該過該擋時,這正是你要的格式。不必解析一大段話多的終端輸出,也不用靠正規表達式硬是把有用的部分撈出來。
可設定、分層的設定
設定會依優先順序從三個地方載入:--config 旗標、專案層級的 .container-diet/config.yaml,以及全域的 ~/.config/container-diet/config.yaml。後面的項目會覆蓋前面的,這表示一個專案可以帶上自己的供應商與模型選擇,同時仍退回你的全域預設值。這是小事,但能讓團隊少吵誰的設定才算數。
優缺點
優點
- 完全免費且開源,沒有按人頭計費,因為 AI 金鑰由你自己提供。
- 能用你已經付費的 AI 供應商,也包括免費的本機 Ollama 設定。
- 相較於讀完建議再手動編輯 Dockerfile,自動修正輸出能省下實實在在的時間。
- 支援 MCP,讓你不必換工具就能在 AI 編輯器裡審閱容器。
缺點
- 它只有 CLI,所以期待視覺化儀表板的人會失望。
- AI 輸出取決於你設定的模型,較弱的模型可能漏掉細微問題。
- 免費使用仍需要供應商金鑰或本機模型,所以第一次執行前要先設定。
常見問題
是。這套工具採 MIT 授權且開源。唯一的花費是你所選 AI 供應商的收費,而如果你透過 Ollama 跑本機模型,那就是零。
相關內容
探索與 Container Diet 相關的工具、技能與文章。
Container Diet 替代方案
Base Code
Base44 (Wix) · 程式設計 · 生產力Base Code 是 Base44 推出的共享雲端開發環境。團隊在對話中描述對既有 GitHub 儲存庫的修改,看著預覽確認結果,再以 Pull Request 交回工程團隊。
Google EmbeddingGemma 2
Google DeepMind · 寫作 · 圖片 · 程式設計Google EmbeddingGemma 2 是 7.4 億參數的開源模型,能把文字、程式碼、圖片、音訊與影片畫面轉成同一個 768 維空間裡的向量,在手機與筆電上就能執行。
GitGlow
GitGlow · 程式設計 · 生產力GitGlow 是桌面版 Git 用戶端,把你自己的程式碼與 AI 代理程式的變更集中在同一份審查裡,讓你在交付前看清楚機器上究竟要送出什麼。
