1.在使用Jenkins發版操做時發現,推送私有倉庫harbor報錯:redis
received unexpected HTTP status: 500 Internal Server Errordocker
2.想要登錄harbor查看,發現harbor界面登錄報錯:登錄校驗失敗服務器
3.登錄服務器,查看harbor的日誌,在redis.log中找到報錯信息spa
提示磁盤爆滿日誌
4.登錄ranchar,發現rancher也掛掉了,執行:docker ps -a |grep ranchar ,拿到ranchar的容器id,執行:docker logs --tail=200 ranchar容器id 查看ranchar的日誌code
當時忘了截圖了。。blog
總之也提示磁盤已滿內存
5.查看磁盤使用狀況,執行:df -hit
發現/home目錄已滿console
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已經能夠登陸,上傳鏡像發版也沒有問題了