Docker - TP 3 : Docker-compose

Thomas S.

2018-2019

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
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
  • links array : Containers liés
  • networks array : Réseaux accessibles
  • depends_on array : Containers dépendant
  • ports array : Ouverture vers l'host
  • environment array : Variables d'environnement

Docker - TP 3 : Docker-compose

Quelques propriétés

  • volumes array : Volumes montés
  • image string : Image disponible dans Docker Hub
  • 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

Objectif : Lancer PHPmyAdmin.
Il vous faudra aussi une base de données Mysql (Image officielle Docker).
Pour ceux qui trouve ce TP bien trop simple, un let's encrypt ne sera pas de trop (Demandez à M. Google).

Docker - TP 3 : Docker-compose

Docker - TP 3 : Docker-compose

TP2

Faire un Docker compose avec deux services :
  • Image 1 : Serveur qui reçoit des IP
  • Image 2 : Replicas de 3 clients qui envoient leur IP (Sans Swarm)

Tout mettre sur le Gitlab de l'UFR, avec nom de projet : IOT_2020_1_NOM_GROUPE avec moi en collaborateur.
Ne pas oublier un README.md, LICENCE.md.

Docker - TP 3 : Docker-compose

TP2

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.
Dernière maj : Voir Github 🐻 1 /
Précédent
Suivant