删除标签为none的镜像
当我们构建镜像的时候,之前的镜像就会变成none标签,时间久了这种镜像就会越来越多非常占用 空间。手动清理这种镜像的命令为
docker rmi $(docker images -f "dangling=true" -q)
删除docker registry中标签为none的镜像
同样如果我们没有给镜像打上标签上传到registry,registry上也会日积月累的堆积非常多的None镜像。
解决办法
1.安装delete-docker-registry-image
curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null
sudo chmod a+x /usr/local/bin/delete_docker_registry_image
2.映射registry的数据存放地址,如果已经安装了registry 请重新安装或者找其他办法映射
-v /home/docker/registry/v2:/var/lib/registry/docker/registry/v2
3.配置环境变量
export REGISTRY_DATA_DIR= /home/docker/registry/v2
4.删除为none的标签
delete_docker_registry_image -i imageName -u
自动删除none镜像和自动删除registry中的none镜像
每次都要手动的删除这些无用的镜像太蛋疼了,我们可以利用linux的crond服务来设置时间让系统自动 删除这些没用的镜像。
1.编写脚本clean.sh
#!/bin/sh
export REGISTRY_DATA_DIR=/home/docker/registry/v2
delete_docker_registry_image -i qnz-alipay -u
delete_docker_registry_image -i qnz-api -u
delete_docker_registry_image -i qnz-client-ds -u
delete_docker_registry_image -i qnz-client-us -u
delete_docker_registry_image -i qnz-dispatch -u
delete_docker_registry_image -i qnz-manager -u
delete_docker_registry_image -i qnz-persistence -u
delete_docker_registry_image -i qnz-schedule -u
delete_docker_registry_image -i qnz-user -u
docker rmi $(docker images -f "dangling=true" -q)
chmod 777 ./clean.sh
2.将delete_docker_registry_image命令添加到crontab可访问的path中
ln -s /usr/local/bin/delete_docker_registry_image /usr/bin/delete_docker_registry_image
3.编写定时任务脚本
crontab -e
1 3 * * * /home/crontab/clean.sh > /home/crontab/clean.log 2>&1
表示每天凌晨3点1分执行该脚本,具体语法自行查找资料。
4.查看当前运行的定时任务
crontab -l