Docker - TP 3 : Docker-compose

Thomas S.

2018-2024

Docker - TP 3 : Docker-compose

Sommaire

  • Un script pour les gouverner tous

Docker - TP 3 : Docker-compose

TL;DR

  • Permet d'instancier plusieurs images
  • Plus facile que de la ligne de commande
  • Peut relancer des containeurs qui plantent
  • Liaisons entre les instances

Docker - TP 3 : Docker-compose

Exemple

Docker - TP 3 : Docker-compose

Installation

C'est ici si la commande docker compose ne fonctionne pas !
RTFM
Image source

Docker - TP 3 : Docker-compose

Usage

docker compose COMMAND options
Dans le dossier avec le docker-compose.yml

  • pull
  • build
  • up [-d]
  • start
  • stop
  • down

Docker - TP 3 : Docker-compose

Lifecycle

Docker compose lifecycle

Docker - TP 3 : Docker-compose

Quelques propriétés

  • container_name string : Nom du container
  • image string : Image disponible dans Docker Hub
  • links array : Containers liés
  • networks array : Réseaux accessibles
  • depends_on array : Containers dépendant
  • ports array : Ouverture vers l'host

Docker - TP 3 : Docker-compose

Quelques propriétés

  • environment array : Variables d'environnement
  • env_file array : Idem, mais dans des fichiers
  • volumes array : Volumes montés
  • deploy object(replicas int) : Replicas pour l'image (Nécessite Swarm)
  • build object : Fabrique l'image depuis un Dockerfile
  • Et bien plus encore !

Docker - TP 3 : Docker-compose

Quelques propriétés (Réseau)

Docker - TP 3 : Docker-compose

TP1 - Réutilisation

Objectif : Lancer PHPmyAdmin.
Il vous faudra aussi une base de données Mysql (Image officielle Docker).

Docker - TP 3 : Docker-compose

TP1 - Réutilisation

Docker - TP 3 : Docker-compose

TP2 - Build depuis 0

Objectif : Reprendre Cowsay et Figlet du précédent TP.
Faire un build des deux images et voir le résultat avec docker compose up.

Docker - TP 3 : Docker-compose

TP3 - Le réseau sans Docker Swarm

Faire un Docker compose avec deux services :
  • Image 1 : Serveur qui reçoit des IP (serveur HTTP 😉)
  • Image 2 : Replicas de 3 clients qui envoient une requête (Sans Swarm)
    Les IPs seront dans les logs de l'image 1.

PS: A mettre de côté pour le prochain TP Docker Swarm !

Docker - TP 3 : Docker-compose

TP4 - Build et réutilisation

Faire un docker-compose.yml avec deux services :
  • Image 1 : Un build d'image du projet Node . Il faudra faire un Git clone et modifier la chaine de connexion à la base de donnée (app.js) avec la commande sed. L'application écoute les requêtes HTTP sur le port 3000
  • Image 2 : Une base de données MongoDB en version 3.0.4. Les données du MongoDB doivent être stockés dans un volume sur votre disque.

Docker - TP 3 : Docker-compose

TP5 - À faire plus tard

Reprendre le TP Lab - Frameworks coté Serveur de M. Pigne, et y écrire le Docker Compose associé.
Dernière maj : Voir Github 🐻 1 /
Précédent
Suivant