HowtoDocker : ajout info pour utilisation avancée
This commit is contained in:
parent
adaa85ba37
commit
747b4c07dd
102
HowtoDocker.md
102
HowtoDocker.md
|
@ -241,4 +241,104 @@ Dockerfile
|
|||
REPOSITORY TAG IMAGE ID CREATED SIZE
|
||||
mariadb latest 4bea99cda08c 8 minutes ago 470MB
|
||||
debian stretch 5b712ae16dd7 3 days ago 100MB
|
||||
~~~
|
||||
~~~
|
||||
|
||||
## Utilisation avancée
|
||||
|
||||
### Swarm
|
||||
|
||||
Swarm permet de mettre en communication plusieurs hôtes Docker afin d'en former
|
||||
un cluster. On pourra ainsi déployer des applications multi-conteneurs sur
|
||||
plusieurs machines.
|
||||
|
||||
Initialiser le cluster :
|
||||
|
||||
~~~
|
||||
docker0# docker swarm init
|
||||
~~~
|
||||
|
||||
Joindre les autres machines au cluster créé (il vous suffit généralement de copier-coller la commande retournée par `docker swarm init` :
|
||||
|
||||
~~~
|
||||
docker1# docker swarm join --token <token> <IP du premier node>
|
||||
~~~
|
||||
|
||||
Par défaut la machine sur laquelle le cluster a été initialisée a le rôle de
|
||||
_manager_, et les suivantes ont le rôle de _worker_. On ne peut déployer de
|
||||
nouveaux services que depuis les _managers_. Les _workers_ se contentent de
|
||||
recevoir les services à rouler.
|
||||
|
||||
Pour ajouter des machines plus tard, il suffit de générer un nouveau token :
|
||||
|
||||
~~~
|
||||
docker0# docker swarm join-token <manager|worker>
|
||||
~~~
|
||||
|
||||
### Compose/stack
|
||||
|
||||
Docker permet de déployer des infrastructures multi-conteneurs (_stacks_) simplement à l'aide de `docker stack` (anciennement Docker Compose, logiciel tier). Il est très utile dans le cadre de déploiement sur un cluster Swarm.
|
||||
|
||||
L'infra est à décrire dans un fichier YAML.
|
||||
|
||||
Déployer (ou mettre à jour à chaud) une nouvelle _stack_ :
|
||||
|
||||
~~~
|
||||
# docker stack deploy -c <stack_name.yml> <stack name>
|
||||
~~~
|
||||
|
||||
Lister les _stacks_ :
|
||||
|
||||
~~~
|
||||
# docker stack ls
|
||||
~~~
|
||||
|
||||
Lister les _services_, toutes _stacks_ confondues ou pour une _stack_ donnée :
|
||||
|
||||
~~~
|
||||
# docker service ls
|
||||
# docker stack services <stack name>
|
||||
~~~
|
||||
|
||||
Lister les _tasks_ (replicas) d'une _stack_ ou d'un _service donnée :
|
||||
|
||||
~~~
|
||||
# docker stack ps <stack name>
|
||||
# docker service ps <service name>
|
||||
~~~
|
||||
|
||||
Supprimer une _stack_ :
|
||||
|
||||
~~~
|
||||
# docker stack rm <stack name>
|
||||
~~~
|
||||
|
||||
### Réseaux
|
||||
|
||||
Docker permet de gérer différentes topologies de réseaux pour connecter les conteneurs entre eux à l'aide de `docker network`.
|
||||
|
||||
_drivers_ réseau supportés :
|
||||
|
||||
- _bridge_ : utilise les bridges Linux ;
|
||||
- _overlay_ : utilisé dans le cas d'un cluster Swarm, permet d'avoir un
|
||||
réseau unique partagé entre tous les hôtes Docker et permet de faire du
|
||||
load-balancing entre les conteneurs (replicas) d'un service ;
|
||||
- _macvlan_ : permet d'assigner directement des adresses IP publiques aux
|
||||
conteneurs, donc aucun NAT n'est fait contrairement aux précédents.
|
||||
|
||||
Créer un réseau :
|
||||
|
||||
~~~
|
||||
# docker create -d <driver> […] <network name>
|
||||
~~~
|
||||
|
||||
Lister les réseaux créés :
|
||||
|
||||
~~~
|
||||
# docker network ls
|
||||
~~~
|
||||
|
||||
Informations détaillées sur un réseau :
|
||||
|
||||
~~~
|
||||
# docker network inspect <network name>
|
||||
~~~
|
||||
|
|
Loading…
Reference in New Issue