Docker compose

De OSWiki
Sauter à la navigation Sauter à la recherche

Docker-compose permet de simplifier la gestion de plusieurs conteneurs.

Installer Docker compose sous GNU/Linux

 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
 sudo python2 get-pip.py
 pip install docker-compose

Test :

 docker-compose version

Utilisation

Fichier docker-compose.yml

* Contient les informations pour créer notre infrastructure.
* Attention à l'indentation avec yalm.

Le fichier

 version: '2'
 volumes:
   <nom_du_volume>:
 networks:
   <nom_du_réseau>:
 services:
   <nom_du_service>:
      image : <nom_de_l_image>
      container_name : <nom_du_conteneur>
      volumes:
        - <nom_du_volume>:/var/www
   environment:
     - VARIABLE=truc
   ports:
     - "80:80"
   networks:
     - <nom_du_réseau>

Quelques notions de comparaison avec docker

Les volumes

  • Les données stockées dans les conteneurs sont éphémères.
  • Les volumes
    • permettent de conserver les données généralement dans /var/lib/docker/volumes,
    • peuvent être partagés entre plusieurs conteneurs,
  • Créer un volume :
docker volume create --name <nom_du_voumue>

Networks

  • Gestion de la configuration réseau.
  • Création de plusieurs networks et faire des groupes de conteneurs. Docker compose le fait pour chaque fichier yml/
  • Communication des conteneurs entre-eux.
  • Bridge : network créé en même temps que l'installation de docker, utilisé par défaut.
  • Créer un réseau :
docker network create <nom_du_réseau>
  • Liste des networks :
docker network ls

Services

  • Définit les conteneurs
  • Lancer un conteneur :
docker run -d etc...

Lancer docker-compose

Se placer dans le dossier de fichier yml

docker-compose up -d

Aide

 docker-compose --help

Définir et exécuter des applications multi-conteneurs avec Docker.

Usage:

 docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
 docker-compose -h|--help

Options:

 -f, --file FILE             Spécifier un autre fichier de composition
                             (par défaut : docker-compose.yml)
 -p, --project-name NAME     Spécifier un nom de projet alternatif
                             (par défaut : nom du répertoire)
 -c, --context NAME          Spécifier un nom de contexte
 --verbose                   Afficher plus de résultats
 --log-level LEVEL           Définit le niveau du journal (DEBUG, INFO, WARNING, ERROR, CRITICAL)
 --no-ansi                   Ne pas imprimer les caractères de contrôle ANSI
 -v, --version               Affiche la version et quitte le programme
 -H, --host HOST             Socket du daemon auquel se connecter
 --tls                       Utilise TLS ; impliqué par --tlsverify
 --tlscacert CA_PATH         Faire confiance aux certificats signés uniquement par ce CA
 --tlscert CLIENT_CERT_PATH  Chemin du fichier de certificat TLS
 --tlskey TLS_KEY_PATH       Chemin d'accès au fichier de clés TLS
 --tlsverify                 Utiliser TLS et vérifier la connexion à distance.
 --skip-hostname-check       Ne pas vérifier le nom d'hôte du démon par rapport au nom
                             nom spécifié dans le certificat du client
 --project-directory PATH    Spécifier un répertoire de travail alternatif
                             (par défaut : le chemin du fichier Compose)
 --compatibility             Si défini, Compose tentera de convertir les clés
                             dans les fichiers v3 en leur équivalent non-Swarm.
 --env-file PATH             Indiquez un autre fichier d'environnement.

Commands:

 build              Compiler ou recompiler des services
 config             Valider et visualiser le fichier Compose
 create             Créer des services
 down               Arrêter et supprimer des conteneurs, des réseaux, des images et des volumes
 events             Recevoir les événements en temps réel des conteneurs
 exec               Exécuter une commande dans un conteneur en cours d'exécution
 help               Obtenir de l'aide sur une commande
 images             Lister les images
 kill               Tue les conteneurs
 logs               Afficher les données des conteneurs
 pause              Pause des services
 port               Imprimer le port public pour une liaison de port
 ps                 Liste des conteneurs
 pull               Extraire les images des services
 push               Pousse les images des services
 restart            Redémarre les services
 rm                 Suppression des conteneurs arrêtés
 run                Exécuter une commande ponctuelle
 scale              Définit le nombre de conteneurs pour un service
 start              Démarrer les services
 stop               Arrête les services
 top                Afficher les processus en cours
 unpause            Désactiver les services
 up                 Créer et démarrer des conteneurs
 version            Afficher les informations sur la version de Docker-Compose

Sources