virli/tutorial/2/what.md
2017-09-22 10:27:47 +02:00

2.6 KiB

\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 : 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 ?

  2. Quels sont les différents storage drivers de Docker ? décrivez-les en quelques mots.