
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 替代方案
Forefront
Forefront · 程式設計Forefront 是一個用來打造開源 AI 的網頁平台。你可以用自己的資料微調主流的開源語言模型、評估它們的表現,再透過 API 執行,或匯出後自行架設。想要封閉式平台的便利、卻堅持要自己擁有模型與資料的開發者,就是這裡的目標客群。
Startkit
StartKit.AI · 程式設計Startkit 是一套用來打造 AI SaaS 與 AI 包裝產品的樣板。可以把它想成一個 AI 新創樣板,把枯燥的部分都先接好了:驗證、Stripe 與 Lemon Squeezy 付款、用量限制、交易型電子郵件,以及一套能與 OpenAI、Anthropic、Groq 或 Llama 溝通的 AI API 啟動套件。你複製儲存庫、設定價格,然後專心在產品中使用者真正願意付費的部分。它建構於 React 與 Tailwind 之上的 Next.js,所以大部分的樣板程式碼對你來說並不陌生。
Testim
Tricentis · 程式設計Testim 是專為網頁、行動與 Salesforce 應用程式打造的 AI 測試自動化平台,用來建立並執行端到端測試。它靠機器學習在介面變動時維持測試穩定,團隊因此少花時間修補壞掉的定位器。對於一款今天就能開始使用的自動化測試工具來說,這表現不算差。你透過在瀏覽器錄製動作來建立測試,需要更多控制時再補上 JavaScript。對忙碌的 QA 團隊來說,這是個可靠的選擇。
