Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révisionLes deux révisions suivantes
technique:tech_team:pres_compose [2021/10/16 20:04] – créée qduchemitechnique:tech_team:pres_compose [2021/10/17 03:23] qduchemi
Ligne 2: Ligne 2:
 ## C'est quoi Docker Compose ? ## C'est quoi Docker Compose ?
  
-On l'a vu, Docker est assez simple d'utilisation : un `docker build`, un `docker run`, et notre conteneur est lancé. 
- 
-Cependant, sur une activité d'hébergement de services, il y a parfois plusieurs dizaines de services à lancer. 
- 
-Or, la configuration des volumes, des ports, des réseaux, etc, se fait au démarrage de chaque conteneur et n'est pas référencé dans l'image. 
- 
-Ceci veut dire qu'à chaque démarrage de conteneur, il faudrait écrire des commandes à rallonge du type : 
- 
-```bash 
-docker run -v <volume>:<destination> -p <port source>:<port conteneur> --network <nom du réseau> <image> 
-``` 
- 
-C'est inimaginable. 
- 
-C'est pourquoi Docker Compose a vu le jour : c'est un système d'**orchestration** de conteneurs. 
- 
-Compose se base sur des fichiers écrits au format `YAML`, qui décrivent **comment** lancer les différents conteneurs. 
- 
-Pour donner une intuition, voici un fichier `docker-compose.yml` fictif qui vise à faciliter l'administration d'un service et de sa base de données : 
- 
-```yaml 
-version: '3.7' 
- 
-volumes: 
-  db: 
- 
-networks: 
-  app: 
-   
-services: 
-  app: 
-    image: mattermost_app 
-    depends_on: mattermost_db 
-    ports: 
-      - 80:8080 
-    networks: 
-      - app 
-    environment: 
-      ADMIN_PASSWORD: admin 
-  
-  db: 
-    image: postgres 
-    networks: 
-      - app 
-    environment: 
-      POSTGRES_PASSWORD: password  
-    volumes: 
-      - db:/var/lib/postgresql 
-``` 
- 
-Sans comprendre tous les éléments de syntaxe, on comprend que : 
- 
-* `app` utilise l'image `mattermost`, la met dans un réseau dédié, se relie au port 80 de la machine hôte, et dépend du service `db`. 
-* `db` utilise l'image `postgres`, la met dans le même réseau que Mattermost, indique qu'il faut conserver le contenu du dossier `/var/lib/postgresql`, etc. 
- 
-<bootnote>Ce fichier peut être distribué à n'importe qui, qui pourra alors lancer le service et sa base de données avec une simple commande qui se charge de configurer et de démarrer tous les services : 
-```bash 
-docker-compose up 
-``` 
-</bootnote> 
  
  • technique/tech_team/pres_compose.txt
  • de qduchemi