定時(shí)清理docker私服鏡像的方法
使用CI構(gòu)建docker鏡像進(jìn)行發(fā)布極大促進(jìn)了大家的版本發(fā)布效率,于是鏡像倉庫也就急速膨脹。為了緩解磁盤壓力,我們需要設(shè)置一些清理策略。
對(duì)于不同docker鏡像的清理策略應(yīng)該是不同的。比如,默認(rèn)保留最近5個(gè)版本的鏡像,對(duì)于工具類的image保留全部,對(duì)于業(yè)務(wù)類的image保留一個(gè)月之類的。
簡單保留5個(gè)image的方式如下:
下載 https://github.com/mlabouardy/nexus-cli , 使用cli來執(zhí)行刪除。
下載
wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli chmod +x nexus-cli
配置
./nexus-cli configure
最終會(huì)在本目錄下創(chuàng)建.credentials 文件
# Nexus Credentials nexus_host = "http://nexus.demo.com" nexus_username = "admin" nexus_password = "adminpass" nexus_repository = "your-docker-private-repo"
注意,host填寫的nexus的host和端口,不是docker對(duì)應(yīng)的repo的端口。
nexus_repository
就是docker對(duì)應(yīng)的repo。
查看鏡像
./nexus-cli image ls
保留最近5個(gè)
./nexus-cli image delete -name mlabouardy/nginx -keep 5
綜合腳本
clean.sh
image_file=image.txt CLI_HOME=/data/nexus3 KEEP_VERSION_NUM=5 $CLI_HOME/nexus-cli image ls > $image_file sed -i '$d' $image_file cat $image_file | while read line do echo "清理$line" $CLI_HOME/nexus-cli image delete -name $line -keep $KEEP_VERSION_NUM done
定時(shí)任務(wù)
crontab -e 0 2 * * * sh /data/nexus3/clean.sh
創(chuàng)建nexus task
思考
前面提到,對(duì)應(yīng)不同的image,應(yīng)該選擇不同的保留策略的。當(dāng)然不能直接保留5個(gè)。比如某個(gè)工具鏡像,雖然開發(fā)很勤快,但應(yīng)用的也許還是老版本。對(duì)于業(yè)務(wù)鏡像,一天發(fā)布了n次,添加了n個(gè)鏡像。怎么維護(hù)這些版本呢?
一個(gè)粗略的想法是,規(guī)范image名稱,比如tools-, biz-之類添加前綴。
分不同的repo。 對(duì)于工具類,單獨(dú)一個(gè)repo,業(yè)務(wù)自己一個(gè)repo,對(duì)不同的repo執(zhí)行不同的保留策略。
總結(jié)
以上所述是小編給大家介紹的定時(shí)清理docker私服鏡像的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
docker安裝kong網(wǎng)關(guān)的方法示例
這篇文章主要介紹了docker安裝kong網(wǎng)關(guān)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05Docker 給運(yùn)行中的容器設(shè)置端口映射的方法
這篇文章主要介紹了Docker 給運(yùn)行中的容器設(shè)置端口映射的方法,詳細(xì)的介紹了端口映射的概念和方法,具體一定的參考價(jià)值,有興趣的可以了解一下2017-11-11Docker容器通過獨(dú)立IP暴露給局域網(wǎng)的方法
這篇文章主要介紹了Docker容器通過獨(dú)立IP暴露給局域網(wǎng)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04使用 Docker-compose 搭建lnmp的詳細(xì)過程
Docker-Compose項(xiàng)目是Docker官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì)Docker容器集群的快速編排,這篇文章主要介紹了使用 Docker-compose 搭建lnmp,需要的朋友可以參考下2023-06-06在Docker中開發(fā)Java 8 Spring Boot應(yīng)用程序的方法
在本文中,我將向您展示如何使用Java 8開發(fā)和運(yùn)行簡單的Spring Web應(yīng)用程序,而無需在本地計(jì)算機(jī)上安裝Java 8。感興趣的朋友跟隨小編一起看看吧2019-10-10Docker安裝部署rocketmq-console工具教程
這篇文章主要介紹了Docker安裝部署rocketmq-console工具教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04詳解Docker 容器基礎(chǔ)系統(tǒng)鏡像打包
這篇文章主要介紹了詳解Docker 容器基礎(chǔ)系統(tǒng)鏡像打包,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12