diff --git a/HowtoDocker.md b/HowtoDocker.md index 7ce8d953..879db0a3 100644 --- a/HowtoDocker.md +++ b/HowtoDocker.md @@ -13,7 +13,7 @@ Documentation : ## Le démon docker et son client Docker est une application en mode client-serveur. *dockerd* est un démon qui -fournit une API REST afin d'intéragir avec les conteneurs. *docker* est un +fournit une API REST afin d'interagir avec les conteneurs. *docker* est un client qui permet d'interagir avec le démon en ligne de commande. Il peut interagir avec un démon en local (sur la même machine) ou avec un démon sur une machine distante. @@ -35,6 +35,34 @@ push`). Un conteneur est une instance exécutable d'une image. +### Stack, service et task + +Lorsque Docker fonctionne en _swarm mode_ (en cluster), les notions de +_stack_, _service_ et _task_ sont introduites, en plus des précédentes. + +Un _service_ est un objet qui contient des informations comme l'image Docker à +instancier, des contraintes de placement ou de limitation de ressources, des +objets à lier au conteneur qui sera lancé (volumes, réseau, etc…), le nombre +de réplicas à démarrer, etc… + +Les services se manipulent avec la commande `docker service`, mais généralement +on les définit dans un fichier YAML. On peut définir plusieurs services dans un +fichier YAML ainsi que d'autres objets dont les services font référence +(_volume_, _network_, _secret_, _config_, etc…). Cet ensemble représente alors +une _stack_, que l'on peut manipuler avec la commande `docker stack`. + +Un _service_ démarre donc un ou plusieurs réplicas. Ces réplicas sont appelés +des _tasks_. Chaque _task_ lance un et un seul conteneur. Les conteneurs étant +des processus Docker indépendant, l'ordonnanceur de Docker Swarm introduit la +notion de _task_ afin de manipuler les conteneurs. Concrètement, une _task_ +représente un conteneur et un état dans lequel il est (_running_, _failed_, +_stopped_ et des états transitoires). Sur le même principe qu'une unité +systemd, monit ou supervisord peut surveiller ses processus et les redémarrer +en cas de besoin, une _task_ Docker se comporte de la même manière avec son +conteneur. + +Voir : https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/#services-tasks-and-containers + ## docker registry Un *registry* sert à héberger des images docker. Il existe des registres