Docker

Allumez vos containers docker seulement quand vous les utilisez

Un outil pour allumer et éteindre vos containers docker en fonction de leur utilisation.

Problématique

Pourquoi en container de + ? 😅

Avec mon serveur, j’ai beaucoup de containers docker qui tournent, certains sont des logiciels que je n’utilise qu’à certains moments et je n’ai pas besoin qu’ils restent allumés tout le temps, ils vont consommer de la ram, du cpu pour rien.

Je me suis donc posé cette question :

Existe-t-il un outil qui me permettrait d’Allumez mes containers docker seulement quand j’en ai besoin ?

Vous vous en doutez, j’ai fini par trouver un soft, ContainerNursery, il s’agit simplement d’un reverse proxy qui va analyser les requêtes faites à vos containers et si après un temps que l’on détermine dans la configuration il n’y a plus de requête, il éteint le container en question.

Astucieux non ?

Installation

Comment qu’on fait ? 😋

Docker
Docker-Compose
            version: "2.1"
                services:
                  ContainerNursery:
                    image: ghcr.io/itsecholot/containernursery:latest
                    container_name: ContainerNursery
                    volumes:
                      - /var/run/docker.sock:/var/run/docker.sock
                      - /mnt/ContainerNursery/config:/usr/src/app/config

Configuration

Comment je le fais fonctionner ? 🙄

Pour la configuration, il vous suffit de créer un fichier config.yml à cet emplacement du container /usr/src/app/config/config.yml

proxyHosts:
  - domain: handbrake.yourdomain.io
    containerName: handbrake
    proxyHost: localhost
    proxyPort: 5800
    timeoutSeconds: 600
    stopOnTimeoutIfCpuUsageBelow: 50
  - domain:
      - wordpress.yourdomain.io
      - wordpress.otherdomain.io
    containerName:
      - wordpress
      - mariadb
    proxyHost: wordpress
    proxyPort: 3000
    timeoutSeconds: 1800

Une petite explication des champs s’impose :

proxyHosts:
  - domain: #La list des domaines qui sont utilisé pour le container Ex: domaine WAN et LAN
      - sub.domaine.fr
      - sub2.dapp.lan
    containerName: #Une liste si vous voulez éteindre plusieurs containers, Ex: Un site web + le container pour la BDD
      - NomDuContainer
      - NomDuContainer2
    proxyHost: 192.168.1.100 #Ip du container
    proxyPort: 10148 #Port du container
    timeoutSeconds: 300 #Le temps en secondes après lequel le container sera éteint si personne ne l'utilise


Et n’oubliez pas de modifier la redirection sur votre reverse proxy pour qu’il pointe vers ce container

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page