當咱們構建鏡像的時候,以前的鏡像就會變成none標籤,時間久了這種鏡像就會愈來愈多很是佔用 空間。手動清理這種鏡像的命令爲linux
docker rmi $(docker images -f "dangling=true" -q)
一樣若是咱們沒有給鏡像打上標籤上傳到registry,registry上也會日積月累的堆積很是多的None鏡像。git
解決辦法github
1.安裝delete-docker-registry-imagedocker
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 請從新安裝或者找其餘辦法映射api
-v /home/docker/registry/v2:/var/lib/registry/docker/registry/v2
3.配置環境變量curl
export REGISTRY_DATA_DIR= /home/docker/registry/v2
4.刪除爲none的標籤url
delete_docker_registry_image -i imageName -u
每次都要手動的刪除這些無用的鏡像太蛋疼了,咱們能夠利用linux的crond服務來設置時間讓系統自動 刪除這些沒用的鏡像。spa
1.編寫腳本clean.shcode
#!/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中crontab
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