69 lines
2.6 KiB
Markdown
69 lines
2.6 KiB
Markdown
|
\newpage
|
||
|
|
||
|
# Composition de Docker
|
||
|
|
||
|
Docker est une suite d'outils de haut niveau, permettant d'utiliser très
|
||
|
facilement les conteneurs.
|
||
|
|
||
|
Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel
|
||
|
vous interagissez via un client (le programme `docker`) qui se connecte au
|
||
|
daemon au moyen d'une socket. Le client peut donc potentiellement être sur une
|
||
|
machine distincte du daemon où s'exécutent les conteneurs.
|
||
|
|
||
|
|
||
|
## Les images Docker
|
||
|
|
||
|
Une image Docker est un système de fichiers en lecture seule. Il est formé d'un
|
||
|
ensemble de couches, agrégées par un UnionFS.
|
||
|
|
||
|
Par exemple, une image peut être un système Ubuntu complet ou juste busybox ou
|
||
|
encore un serveur web et votre application web, prêt à l'emploi.
|
||
|
|
||
|
Les images sont utilisées pour créer des conteneurs.
|
||
|
|
||
|
Il y a deux méthodes pour obtenir des images Docker : soit les construire avec
|
||
|
les outils fournis, soit les récupérer depuis un registre.
|
||
|
|
||
|
|
||
|
## Les conteneurs Docker
|
||
|
|
||
|
Alors que les images constituent la partie immuable de Docker, les conteneurs
|
||
|
sont sa partie vivante. Chaque conteneur est créé à partir d'une image : à
|
||
|
chaque fois que vous lancez un conteneur, une couche lecture/écriture est
|
||
|
ajoutée au dessus de l'image. Cette couche est propre au conteneur et est
|
||
|
temporaire : l'image n'est pas modifié par l'exécution d'un conteneur.
|
||
|
|
||
|
Chaque conteneur s'exécute dans un environnement restreint (namespaces,
|
||
|
cgroups, capabilities, ...).
|
||
|
|
||
|
|
||
|
## Les registres Docker (*Docker registries*)
|
||
|
|
||
|
Les registres sont des plates-formes de stockage, publiques ou privées,
|
||
|
contenant des images. Ils permettent de récupérer des images, mais également
|
||
|
d'en réceptionner.
|
||
|
|
||
|
Le registre utilisé de base est le [Docker Hub](https://hub.docker.com/) : il
|
||
|
contient à la fois des images officielles (ubuntu, debian, nginx, ...) et des
|
||
|
images crées par des utilisateurs.
|
||
|
|
||
|
|
||
|
## Outils annexes
|
||
|
|
||
|
En plus du Docker-engine, le daemon et client que nous allons utiliser
|
||
|
aujourd'hui, Docker développe également Docker-machine : qui permet d'installer
|
||
|
et configurer le daemon rapidement sur plusieurs machines (afin de les utiliser
|
||
|
au sein d'un cluster) et Docker-compose : qui permet de lancer un ensemble de
|
||
|
conteneurs dépend les uns des autres (par exemple un serveur web et sa base de
|
||
|
données).
|
||
|
|
||
|
|
||
|
## Rendu
|
||
|
|
||
|
1. À quoi correspondent les différents modes réseau utilisables dans Docker : à
|
||
|
quel type de réseau LXC (VLAN, MACVLAN-VEPA, veth, phys, ...)
|
||
|
correspondent-ils ? comment sont utilisés les *namespaces Network* ?
|
||
|
|
||
|
1. Quels sont les différents *storage drivers* de Docker ? décrivez-les en
|
||
|
quelques mots.
|