Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
technique:team_tech:pres_docker [2021/10/16 20:02] – ↷ Page déplacée et renommée de technique:docker:general:presentation à technique:team_tech:pres_docker qduchemitechnique:tech_team:pres_docker [2021/10/17 01:09] qduchemi
Ligne 1: Ligne 1:
-{{indexmenu_n>1}} +{{indexmenu_n>7}} 
-Présentation de Docker et Compose+C'est quoi Docker ?
  
 D'innombrables introductions et tutoriels sont disponibles sur Internet, c'est pourquoi cette page ne vise qu'à donner une intuition des concepts utilisés dans le reste de la documentation. En particulier, on n'expliquera pas **comment** fonctionne Docker, mais plutôt ce qu'il permet de faire. D'innombrables introductions et tutoriels sont disponibles sur Internet, c'est pourquoi cette page ne vise qu'à donner une intuition des concepts utilisés dans le reste de la documentation. En particulier, on n'expliquera pas **comment** fonctionne Docker, mais plutôt ce qu'il permet de faire.
Ligne 146: Ligne 146:
  
 <bootnote warning>Lorsqu'un conteneur est éteint puis supprimé, toutes les modifications apportées par rapport à l'image de base sont supprimées également. C'est pourquoi il est utile d'utiliser les **volumes**, qui stockent de manière persistante les modifications à certains fichiers du conteneur (contenu d'une base de donnée, etc).</bootnote> <bootnote warning>Lorsqu'un conteneur est éteint puis supprimé, toutes les modifications apportées par rapport à l'image de base sont supprimées également. C'est pourquoi il est utile d'utiliser les **volumes**, qui stockent de manière persistante les modifications à certains fichiers du conteneur (contenu d'une base de donnée, etc).</bootnote>
- 
-## 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_docker.txt
  • de qduchemi