Docker-gc pour faire le ménage dans vos images et vos volumes Docker
Bonjour,
Quand vous avez beaucoup de containers qui tournent ou surtout quand vous faites pas mal de tests comme moi, vous avez tendance à télécharger au final pas mal d’images et ne jamais les virer (euh oui en fait je n’y fait jamais attention). Les images docker sont assez light donc ce n’est pas gênant mais ça ne sert à rien de les garder si vous ne vous en servez jamais. C’est la qu’intervient le container docker-gc. Oui il a un nom à la con mais il fait son boulot c’est à dire qu’il va scanner votre docker et nettoyer tout ce qui n’est pas utilisé au niveau des images & des volumes.
A noter tout de même qu’il peut parfois être violent, c’est à dire que si vous avez des containers qui sont arrêtés depuis un moment, il va tout simplement les virer !
version: "3.5" services: # Docker-GC - Automatic Docker Garbage Collection # Create docker-gc-exclude file # https://github.com/clockworksoul/docker-gc-cron # https://hub.docker.com/r/clockworksoul/docker-gc-cron dockergc: image: clockworksoul/docker-gc-cron:latest container_name: dockergc hostname: dockergc restart: unless-stopped #network_mode: none volumes: - /var/run/docker.sock:/var/run/docker.sock - ./docker-gc-exclude:/etc/docker-gc-exclude environment: CRON: 0 0 * * * FORCE_IMAGE_REMOVAL: 1 FORCE_CONTAINER_REMOVAL: 0 GRACE_PERIOD_SECONDS: 86400 DRY_RUN: 0 CLEAN_UP_VOLUMES: 1 TZ: Europe/Paris networks: - services labels: - "traefik.enable=true" networks: services: external: true
Alors pour les explications:
– CRON : vous indiquez l’heure à laquelle il doit effectuer son ménage. Ici c’est Paris, euuh, non minuit.
– FORCE_IMAGE_REMOVAL: si vous avez une image qui est utilisé par plusieurs containers, dockergc ne va pas l’effacer sauf si vous activez cette option.
– FORCE_CONTAINER_REMOVAL: si lors du nettoyage il rencontre une erreur, par défaut il ne va pas effacer le container.
– GRACE_PERIOD_SECONDS: période pendant laquelle après un arrêt du container il va l’exclure du nettoyage. Si après cette période le container n’est toujours pas actif, la magie va s’opérer automatiquement.
– DRY_RUN: par défaut dockergc va procéder au nettoyage automatique.
– CLEAN_UP_VOLUMES: permet de nettoyer les volumes orphelins. Oui l’informatique est une jungle impitoyable.
Je tourne avec ce container sur deux VMs depuis maintenant plusieurs semaines et il fonctionne parfaitement. Mes dockers n’ont jamais été aussi propre !
@+