Ready for j1

This commit is contained in:
nemunaire 2016-09-08 03:44:20 +02:00
commit dc8544c0c9
31 changed files with 690 additions and 546 deletions

View file

@ -1,68 +1,18 @@
\newpage
# Composition de Docker
# But du TP
Docker est une suite d'outils de haut niveau, permettant d'utiliser très
facilement les conteneurs.
Aujourd'hui, nous allons terminer notre système de monitoring commencé lors du
premier TP.
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.
Le résultat attendu d'ici la fin du TP, est un groupe de conteneurs
indépendants les uns des autres, réutilisables en fonction des besoins.
TODO image de graphana
## 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.
Nous reprendrons le script de monitoring que vous avez rendu au premier TP. Les
données collectées seront envoyés vers [https://influxdb.com/](InfluxDB), puis
elles seront affichées sous forme de graphique dans
[http://grafana.org/](Grafana). L'interface sera servie par un reverse-proxy
qui vous permettra de n'ouvrir que le port 80 ou 443, pour accéder à
l'interface d'administration d'InfluxDB et à l'interface de Grafana.