Il peut arriver parfois la situation où un conteneur Docker consomme une quantité excessive de ressources sur un hôte provoquant une charge excessive du conteneur. Une solution est de limiter les ressources que ce conteneur peut consommer, en terme de CPU ou de mémoire. Dans cet article, nous allons limiter la quantité de mémoire consommée.
La mise à jour des conteneurs Docker peut demander des efforts importants. Il existe bien sûr des solutions pour automatiser ces mises à jour. Ici, nous étudions la solution proposée par l’image Docker WatchTower (https://github.com/v2tec/watchtower).
WatchTower est un conteneur Docker qui met à jour tous les conteneurs en cours d’exécution lorsqu’il existe une mise à jour de ce conteneur.
Le principe est le suivant :
vous exécutez le conteneur de WatchTower,
vous créez une image Docker,
vous la poussez sur Docker Hub,
vous vous mettez à jour cette image Docker,
vous la poussez sur Docker Hub,
WatchTower arrête le conteneur de l’image que vous avez créée, met à jour l’image puis redémarre le conteneur.
Lancement de Watchtower
Créer le conteneur WatchTower pour surveiller les conteneurs en cours d’exécution :
It is sometimes useful to be able to launch a container that can launch Docker tasks itself. This is done by installing Docker in a Docker container (Docker in Docker). It also involves mounting the host’s Linux sockets in the Container. Docker CLI itself uses the Docker socket to communicate with the Docker Engine.
Il est parfois utile de pouvoir lancer un conteneur pouvant lancer lui-même des tâches Docker. Cela consiste à installer Docker dans un conteneur Docker. Cela suppose aussi de monter les sockets Linux de l’hôte dans le conteneur. Docker CLI lui-même utilise le socket Docker pour communiquer avec Docker Engine.