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
technique:tech_team:pres_docker [2021/10/17 01:09] qduchemitechnique:tech_team:pres_docker [2021/11/04 21:38] (Version actuelle) qduchemi
Ligne 1: Ligne 1:
-{{indexmenu_n>7}}+{{indexmenu_n>19}}
 # C'est quoi Docker ? # 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.+Il y plein d'introductions et tutoriels sur Internet, alors on va se limiter à donner une intuition des concepts utilisés dans le reste du wiki:-D
  
-## Conteneurs+## Rappels sur machines virtuelles vs conteneurs
  
-Docker est un logiciel libre permettant de lancer des **applications** dans des **conteneurs**.+Docker est un logiciel libre permettant d'**isoler** des applications dans des **conteneurs**.
  
-<bootnote question>Qu'est ce qu'un conteneur ?</bootnote>+<bootnote question>C'est quoi un conteneur ?</bootnote>
  
 Un conteneur peut être vu comme une sorte de machine virtuelle légère. Un conteneur peut être vu comme une sorte de machine virtuelle légère.
Ligne 51: Ligne 51:
 <bootnote>Ce qu'il faut retenir, c'est qu'un conteneur permet de lancer une application isolée des autres applications, par rapport à un système Linux basique, où toutes les applications écrivent dans les mêmes dossiers (`/etc`...) et peuvent communiquer les unes avec les autres par défaut.</bootnote> <bootnote>Ce qu'il faut retenir, c'est qu'un conteneur permet de lancer une application isolée des autres applications, par rapport à un système Linux basique, où toutes les applications écrivent dans les mêmes dossiers (`/etc`...) et peuvent communiquer les unes avec les autres par défaut.</bootnote>
  
-Une implication subsidiaire est qu'il est très facile de migrer un conteneur d'une machine à une autrepuisqu'un conteneur peut s'exécuter n'importe où.+Un des avantages est qu'un « même » conteneur pourra tourner sur n'importe quelle machine, dans des environnements très différents.
  
 ## Concepts fondamentaux de Docker ## Concepts fondamentaux de Docker
Ligne 57: Ligne 57:
 ### Philosophie ### Philosophie
  
-La philosophie de Docker rejoint celle des micro-services : créer des briques ré-utilisables, qui font une chose et le font bien, et sont capables de communiquer avec d'autres briques. Cette approche s'oppose à celle dite **monolithique**.+La philosophie de Docker rejoint celle des micro-services : créer des briques ré-utilisables, qui font une chose et le font bien, et qui sont capables de communiquer avec d'autres briques. Cette approche s'oppose à celle dite **monolithique**.
  
 La brique, dans ce cas, est un conteneur. La brique, dans ce cas, est un conteneur.
Ligne 65: Ligne 65:
 ### Image Docker ### Image Docker
  
-Une **image** Docker peut être vue comme une grosse archive inerte, qui contient tout ce qu'il faut pour lancer une application. L'intérêt principal d'une image est qu'elle est **utilisable sur n'importe quel système d'exploitation** et  **réutilisable**.+Une **image** Docker peut être vue comme une grosse archive inerte, qui contient tout ce qu'il faut pour lancer une application. L'intérêt principal d'une image est qu'elle est **utilisable sur n'importe quel système d'exploitation** et **réutilisable**.
  
 <bootnote>Pour faire une analogie, pour installer un paquet sur une distribution Linux, les commandes vont varier (`apt-get`, `pacman`, `yum`...), tout comme le nom des paquets. La configuration distribuée sera différente, l'emplacement des fichiers aussi. Avec Docker, il suffit d'une seule commande pour lancer une application sur n'importe quel système d'exploitation et obtenir le même résultat **partout**.</bootnote> <bootnote>Pour faire une analogie, pour installer un paquet sur une distribution Linux, les commandes vont varier (`apt-get`, `pacman`, `yum`...), tout comme le nom des paquets. La configuration distribuée sera différente, l'emplacement des fichiers aussi. Avec Docker, il suffit d'une seule commande pour lancer une application sur n'importe quel système d'exploitation et obtenir le même résultat **partout**.</bootnote>
  
-Une image Docker se construit à partir d'un `Dockerfile`, qui est en quelque sorte la **recette de cuisine de l'image**.+Une image Docker se construit à partir d'un fichier nommé `Dockerfile`, qui est en quelque sorte la **recette de cuisine de l'image**.
  
 Les images peuvent hériter d'autres images. Les images peuvent hériter d'autres images.
Ligne 135: Ligne 135:
 <bootnote>Exemple : on prépare une image `nginx`, qui permet de lancer un site web. On a cinq sites web. On lance 5 conteneurs à partir de cette image, sans avoir à se taper cinq fois la configuration.</bootnote> <bootnote>Exemple : on prépare une image `nginx`, qui permet de lancer un site web. On a cinq sites web. On lance 5 conteneurs à partir de cette image, sans avoir à se taper cinq fois la configuration.</bootnote>
  
-### Volumes, réseaux, ports +<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). On voit ça [[technique:tech_team:tuto_docker|dans la page sur la fabrication d'image Docker]] !</bootnote>
- +
-En reprenant l'exemple de l'image `nginx`, on sent que les conteneurs ne sont pas exactement dans le même état. Chaque conteneur va : +
- +
-* Avoir ses propres fichiers à servir +
-* Être relié à un port différent de la machine hôte, par exemple +
-* Être isolé d'un point de vue réseau, parce qu'ils n'ont pas de raisons de communiquer ensemble. +
- +
-Docker permet de gérer tout ceci. +
- +
-<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>+
  • technique/tech_team/pres_docker.1634425783.txt.gz
  • de qduchemi