Ceci est une ancienne révision du document !
Table des matières
Docker Compose
Objectif
Avec compose on peut gérer un ensemble de dockers liés/ou pas entre eux par le biais de fichiers de conf.
J'en ai besoin pour :
- Être plus confortable pour gérer mon lot de dockers web avec Traefik. Voir Traefic Reverse Proxy.
- Centraliser (sous git) des fichiers de confs pour la création de mes dockers. Aujourd'hui c'est éparpillé dans le wiki sous forme d'exemple, c'est pas pratique.
C'est promis, fini les docker run à rallonge
Installation
On prend la dernière release de compose et on le place dans son bin :
sudo -s curl -L https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
Lancement d'un compose de dockers
Un fichier de conf
Créer un fichier de configuration docker-compose.yml
, exemple :
version: '3' services: Nginx_1: image: richarvey/nginx-php-fpm restart: always Nginx_2: image: richarvey/nginx-php-fpm
Puis lancer le compose en mode démon :
docker-compose up -d
Plusieurs fichiers de conf
Pour gérer plusieurs composes différents, on peut jouer avec une arborescence et l'option -f de compose :
my-project | |----> service-a (git submodule) | | | -----> docker-compose.yml | |----> service-b (git submodule) | | | -----> docker-compose.yml | -----> docker-compose.yml
Exemple pour vérifier si compose entend bien plusieurs fichiers avec la directive config
qui listera les configurations :
docker-compose -f service-a/docker-compose.yml -f service-b/docker-compose.yml config
La documentation associée : docs.docker.com/compose/multiple-compose-files
Ressources
La documentation officielle de compose : docs.docker.com/compose/