一、创建docker仓库
操作步骤
推送仓库
docker login ip:9021 -u $username -p $password
docker push ip:9021/$project/$module:tag
二、清理
下载nexus-cli
wget https://s3.eu-west-2.amazonaws.com/nexus-cli/1.0.0-beta/linux/nexus-cli
chmod +x nexus-cli
配置
nexus-cli同级目录执行./nexus-cli configure
,然后依次输入:
- 仓库地址(http://host:8081,注意这里是UI访问端口,不是repo的端口)
- 镜像仓库名称
- 用户名
- 密码
最终会在本目录下创建.credentials 文件
# Nexus Credentials
nexus_host = "http://nexus.demo.com"
nexus_username = "admin"
nexus_password = "adminpass"
nexus_repository = "your-docker-private-repo"
查看镜像
./nexus-cli image ls
保留最近5个
./nexus-cli image delete -name mlabouardy/nginx -keep 5
综合脚本
创建脚本clean.sh
,配置好对应的cli的目录,和需要清除的镜像列表文件
image_file=image.txt
CLI_HOME=/opt/docker-clear
KEEP_VERSION_NUM=10
$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
定时任务
每天2点执行
crontab -e
0 2 * * * sh /opt/docker-clear/clean.sh
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1月. 12是12月.
o Day-of-week: 区间为0 – 7. 周日可以是0或7.
创建nexus task
这里的清除只是打了标签,并没有实际的释放磁盘,需要在仓库后面创建一个定时清理的任务