This commit is contained in:
Alexander Zhirov 2025-03-21 16:57:14 +03:00
parent 821974b567
commit 0248648697
2 changed files with 56 additions and 6 deletions

View File

@ -1,3 +1,29 @@
# Registry Cleaner
Очистка локального registry
```
Использование: regclean <команда> [аргументы]
Команды:
get <имя_образа> Получить список тегов для указанного образа в локальном Docker Registry.
Пример: regclean get myimage
del <имя_образа> <тег> Удалить образ с указанным тегом из локального Docker Registry.
Пример: regclean del myimage 1.0.1
clean Очистить ненужные слои (garbage collection) в локальном Docker Registry.
Пример: regclean clean
help Показать эту справку.
Пример: regclean help
Требования:
- Локальный реестр должен быть запущен (по умолчанию на http://localhost:5000).
- Для команды 'del' требуется переменная окружения REGISTRY_STORAGE_DELETE_ENABLED=true в реестре.
- Контейнер реестра должен называться 'registry' для команды 'clean'.
Примечания:
- Убедитесь, что утилиты curl, grep, awk, sed и tr установлены на хосте.
- Измените REGISTRY_URL в скрипте, если ваш реестр работает не на localhost:5000.
```

View File

@ -5,6 +5,29 @@ REGISTRY_URL="http://localhost:5000"
# Имя контейнера реестра (для команды clean)
REGISTRY_CONTAINER="registry"
show_help() {
echo "Использование: regclean <команда> [аргументы]"
echo ""
echo "Команды:"
echo " get <имя_образа> Получить список тегов для указанного образа в локальном Docker Registry."
echo " Пример: regclean get myimage"
echo " del <имя_образа> <тег> Удалить образ с указанным тегом из локального Docker Registry."
echo " Пример: regclean del myimage 1.0.1"
echo " clean Очистить ненужные слои (garbage collection) в локальном Docker Registry."
echo " Пример: regclean clean"
echo " help Показать эту справку."
echo " Пример: regclean help"
echo ""
echo "Требования:"
echo " - Локальный реестр должен быть запущен (по умолчанию на http://localhost:5000)."
echo " - Для команды 'del' требуется переменная окружения REGISTRY_STORAGE_DELETE_ENABLED=true в реестре."
echo " - Контейнер реестра должен называться 'registry' для команды 'clean'."
echo ""
echo "Примечания:"
echo " - Убедитесь, что утилиты curl, grep, awk, sed и tr установлены на хосте."
echo " - Измените REGISTRY_URL в скрипте, если ваш реестр работает не на localhost:5000."
}
check_registry() {
if ! docker ps | grep -q "$REGISTRY_CONTAINER"; then
echo "Ошибка: контейнер реестра '$REGISTRY_CONTAINER' не запущен."
@ -15,7 +38,7 @@ check_registry() {
get_tags() {
local image_name="$1"
if [ -z "$image_name" ]; then
echo "Ошибка: укажите имя образа (например, ./script.sh get astra-docker)"
echo "Ошибка: укажите имя образа (например, regclean get myimage)"
exit 1
fi
@ -40,7 +63,7 @@ delete_image() {
local tag="$2"
if [ -z "$image_name" ] || [ -z "$tag" ]; then
echo "Ошибка: укажите имя образа и тег (например, ./script.sh del astra-docker 1.7.25080.1522)"
echo "Ошибка: укажите имя образа и тег (например, regclean del myimage 1.0.1)"
exit 1
fi
@ -84,11 +107,12 @@ case "$1" in
"clean")
clean_registry
;;
"help"|"")
show_help
;;
*)
echo "Использование:"
echo " ./script.sh get <имя_образа> - получить список тегов"
echo " ./script.sh del <имя_образа> <тег> - удалить образ с указанным тегом"
echo " ./script.sh clean - очистить ненужные слои"
echo "Неизвестная команда: $1"
show_help
exit 1
;;
esac