Образ для автоматической очистки неиспользуемых обьектов в Docker Swarm (работает и просто как Docker Service )
По умолчанию удаляются следующие типы обьектов:
- container
- volume
- network
Для работы необходимо задать параметры yml файле:
- AGE - срок в формате timestamp или Go duration strings (10m, 1h30m) после которого неиспользуемые ресурсы будут удалены
- SLEEP - периодичность проверки в формате timestamp или Go duration strings (10m, 1h30m)
- STICKY_LABEL = не удалять образа с этой меткой
В случае если необходимо защитить какой либо из образов от автоматического удаления необходимо добавить к образу label
, например persistent_image=yes
Для этого создайте Dockerfile для образа
FROM <IMAGENAME>
LABEL persistent_image=yes
При запуске стека необходимо собрать образ из приведенного выше Dockerfile
docker-compose.yaml
...
<SERVICENAME>
container_name: <CONTAINERNAME>
build:
context: .
...
где - название образа который должен быть защищен от автоматического удаления, - название сервиса в стеке, имя контейнера (опционально)
И задайте STICKY_LABEL: persistent_image=yes
в переменных зщапуска docker_gc
- docker-stack.yml - для деплоя сервиса в Docker swarm
- docker-compose.yml - для запуска Docker Service
Prebuild docker image on hub.docker.com - https://hub.docker.com/r/pdacity/docker_gc