Docker compose
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
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...
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