Docker registry 私有倉庫 清理 刪除


在公司使用docker,搭建了一個V1版本的倉庫,時間長了以后發現有很多冗余,SO,考慮清理

Docker registry默認提供了一個倉庫清理的url,如下:可以刪除鏡像centos6s的tag(latest)

curl -X DELETE http://localhost:5000/v1/repositories/centos6s/tags/latest

但問題來了!!

實際上,物理上疊加的鏡像層是不會刪除的,就是說通過這個url刪除的只是對應的鏡像信息,而不是實際的鏡像。這樣的鏡像會一直存在,直到我們的磁盤爆了,然后,就沒有然后了。

詳細內容大家可以自行去研究,這里不展開討論了。

 

基於以上的原因,看了一下V1版本倉庫的實際存儲方式,我做了個清理的小工具,放在github上,地址如下:

https://github.com/King-Kuhn/docker_registry_clean

下面是使用步驟以及目前支持的情況,后面有時間會增加新的功能。

 

也歡迎同學們拍磚。

 

# docker_registry_clean
Author : Kuhn
QQ : 170478063

清理docker私有倉庫

目前支持v1版本的docker registry

當前功能:

1.清理指定image:tag

2.當image所有的tag均刪除后,會嘗試刪除該image歷史冗余的所有鏡像

操作方法:

1.下載本工具包docker_registry_clean

2.將docker_registry_clean目錄放在docker私有倉庫所在主機的某個目錄下(需要有操作倉庫目錄的權限)

3.執行如下命令
python delete-image.py {registry_path} {image_name:image_tag}
----------{registry_path}是倉庫所在目錄,其實就是啟動倉庫的時候指定的目錄(-v /home/registry-storage:/home/registry-storage -w /home/registry-storage) 默認V1版本的倉庫根目錄下有這兩個目錄:images repositories
----------{image_name:image_tag} 鏡像:tag

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM