2017-07-12 34 views
2

最近開始使用Docker註冊表作爲企業Docker鏡像的中心。幾個星期後,我發現docker registry已經吃掉了所有的磁盤空間:(Docker註冊表垃圾回收

我們爲開發人員自動部署,每次從GIT提取最新的master,然後創建docker映像並將其推送到我們的註冊表Image name和image tag總是相同的,所以我預計在Docker註冊表中新圖片會覆蓋舊圖片,但實際上所有這些圖層都在處收集.../docker/registry/v2/blobs/SHA256/文件夾

內置的垃圾收集器沒有幫助:。在/ usr/bin中/泊塢窗EXEC註冊表/斌/註冊表垃圾收集/etc/docker/registry/config.yml它根本不刪除未使用的圖層併產生smth.like:1204個blob標記,0個blob符合刪除條件

我們只有1個docker鏡像。但它經常被推到註冊表中。如何只保留最新版本的圖像?

註冊的版本是2.4.0

+0

一次偶然的機會,這是否圖像有很多層?也許開發人員推動層頂而不是重建圖像(也許他們使用碼頭提交) – Robert

回答

2

要強制垃圾收集器刪除未經標記的圖像,一些清單文件必須拆除。我有我已經在生產中使用的腳本,因爲碼頭工人登記2.4.0和2.6.1仍然有效:

https://github.com/ricardobranco777/clean_registry.sh

+0

謝謝!很有用。我已經根據您的解決方案構建了一些自定義bash腳本以適應我們的要求。 –

+0

我已經在Docker Hub上創建了一個Python腳本和一個Docker鏡像。 https://github.com/ricardobranco777/clean_registry –

+0

優秀的工作......我告訴你的經理把你的工資增加三倍 –