Harbor刪除鏡像后且GC清理后,磁盤空間沒有釋放的問題


1、原因

Harbor刪除鏡像后且GC清理后,磁盤空間沒有釋放。因為我們push大量相同標簽的鏡像,Docker 鏡像標簽引用,並由唯一的摘要標識這意味着如果myImage使用標記推送兩個圖像,在DR內部他們顯示的不同,它們將由兩個不同的digests標識最后推送的Images是當前的。Docker 鏡像layers組成,每個layers都關聯一個blobblob是最占用存儲的文件; 這些文件將由GC清理。正由上面的描述每個鏡像都會存儲一個引用,因為,我們重復提交10次,那一個標簽在DR中會有10個引用,標簽只能獲取tag。而其他9個只digest獲取了。

簡單的來說就是因為相同的標簽的鏡像重復提交次數過多導致。

2、解決方法

 1、編輯 common/config/registry/config.yml文件

此文件在harbor安裝目錄下,關閉的目的是為了禁止身份驗證

 

 2、修改 docker-compose.yml 文件

此文件在harbor安裝目錄下,修改此文件的目的是把registry port端口暴露出來,添加紅框出的配置,注意格式。

3、重新配置harbor,使其配置生效

執行下面的命令

docker-compose down
docker-compose up -d 

4、 清理已刪除未使用的清單

執行下面的命令

docker run --network="host" -it -v /data/registry:/registry -e REGISTRY_URL=http://127.0.0.1:5000 mortensrasmussen/docker-registry-manifest-cleanup:1.1.2beta

5、清理以刪除現在不再與清單關聯的blob

執行下面的命令

docker run -it --name gc --rm --volumes-from registry vmware/registry-photon:v2.6.2-v1.4.0 garbage-collect /etc/registry/config.yml

6、把步驟1和步驟2的配置修改回初始狀態,並重啟harbor。


免責聲明!

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



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