1.在使用Jenkins發版操作時發現,推送私有倉庫harbor報錯:
received unexpected HTTP status: 500 Internal Server Error
2.想要登陸harbor查看,發現harbor界面登陸報錯:登陸校驗失敗
3.登陸服務器,查看harbor的日志,在redis.log中找到報錯信息
提示磁盤爆滿
4.登陸ranchar,發現rancher也掛掉了,執行:docker ps -a |grep ranchar ,拿到ranchar的容器id,執行:docker logs --tail=200 ranchar容器id 查看ranchar的日志
當時忘了截圖了。。
總之也提示磁盤已滿
5.查看磁盤使用情況,執行:df -h
發現/home目錄已滿
6.進入home目錄下,執行:du -hs *| sort -h,發現harbor占比最大,然后一路找下去,發現是harbor的/registry/docker/registry 占比最大
至此,已能判斷出是harbor的鏡像占用內存過大,導致磁盤爆滿
7.停止harbor,防止在刪除鏡像過程中有人在上傳鏡像,導致鏡像的圖層不全
docker-compose stop
8.預覽運行效果
docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect --dry-run /etc/registry/config.yml
9.刪除相關文件和鏡像
docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml
10.啟動harbor
docker-compose start
至此,harbor已經可以登錄,上傳鏡像發版也沒有問題了