定時刪除docker中的none鏡像和registry中的none鏡像

刪除標籤爲none的鏡像

當咱們構建鏡像的時候,以前的鏡像就會變成none標籤,時間久了這種鏡像就會愈來愈多很是佔用 空間。手動清理這種鏡像的命令爲linux

docker rmi $(docker images -f "dangling=true" -q)

刪除docker registry中標籤爲none的鏡像

一樣若是咱們沒有給鏡像打上標籤上傳到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

自動刪除none鏡像和自動刪除registry中的none鏡像

每次都要手動的刪除這些無用的鏡像太蛋疼了,咱們能夠利用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
相關文章
相關標籤/搜索