Déployez vos applications grâce à Docker

Déployez vos applications grâce à Docker

10 mai 2019 Non Par Paidge

IV. Docker-compose

1) Présentation

Docker-compose est un outil pour définir et lancer des applications multi-conteneurs. Grâce à un fichier YAML, vous pouvez configurer les différents services de votre application. Par exemple, pour faire tourner votre site web développé en PHP vous avez généralement besoin d’un serveur Apache, de PHP et d’une base de données MYSQL. Grâce à Docker-compose, vous pourrez définir les 3 images qui vous intéressent et les paramétrer pour lancer automatiquement un ensemble de conteneurs reliés entre eux.

Voici un exemple de fichier docker-compose :

version: '3'
services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

Pour plus d’informations, vous pouvez consulter la documentation officielle.

2) Installation

  • Lancez cette commande pour télécharger la dernière version stable de Docker Compose :
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • Autorisez l’exécution du fichier binaire :
sudo chmod +x /usr/local/bin/docker-compose
  • Testez l’installation :
docker-compose --version
  • Si la commande docker-compose ne fonctionne pas, vérifiez votre PATH. Vous pouvez aussi créer un lien symbolique vers /usr/bin ou n’importe quel autre répertoire qui se trouve dans votre PATH :
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • Pour afficher une liste des commandes disponibles :
docker-compose --help

3) Utilisation

Rendez-vous dans le répertoire où se trouve votre fichier docker-compose.yml pour votre application puis lancer vos conteneurs grâce à cette commande :

docker-compose up # Avec la console attachée
 docker-compose up -d # Avec la console détachée

Si vous vous trouvez dans un autre répertoire :

docker-compose -f /dossier/sous-dossier/docker-compose.yml up

Pour exécuter une commande dans un des conteneurs :

docker-compose exec mon_conteneur ma_commande

Exemple :

docker-compose exec rails bin/rails db:migrate

C’est l’équivalent de la commande docker exec.

Afficher les logs depuis le dernier démarrage :

docker-compose logs
 docker-compose logs -f # affiche les logs des services et continue à les « écouter » sans rendre la main
 docker-compose logs -f mon_conteneur # Pour un seul conteneur

Pour stopper vos conteneurs :

docker-compose stop

Pour stopper ET supprimer vos conteneurs :

docker-compose down

Pour redémarrer les services :

docker-compose start # Après un stop
 docker-compose restart
 docker-compose restart mon_conteneur

4) Utilisation des variables d’environnement

Pour rendre votre docker-compose dynamique (mot de passe de bases de données, nom d’un serveur par ex), il est possible de passer des variables d’environnement à votre fichier docker-compose grâce à un fichier .env situé au même niveau que votre fichier docker-compose.yml.

Par exemple :

$ cat .env
TAG=v1.5

$ cat docker-compose.yml
version: '3'
services:
  web:
    image: "webapp:${TAG}"

$ docker-compose config
// Output :
version: '3'
services:
  web:
    image: 'webapp:v1.5'

Ce tutoriel est terminé et pourra évoluer dans le temps. Si vous remarquez des erreurs ou si vous avez des idées pour l’améliorer, n’hésitez pas à nous contacter.

Sommaire :

  1. Introduction
  2. Installation de Docker
  3. Création et utilisation des images
  4. Gestion des conteneurs
  5. Docker-Compose

Pages : 1 2 3 4 5