Services/Docker.md
... ...
@@ -0,0 +1,92 @@
1
+Docker au ResEl
2
+================
3
+
4
+## Généralités
5
+
6
+[Docker](https://www.docker.com/) permet d'isoler des processus au sein d'un système hôte Linux. L'impact sur la performance est minimal grâce à l'utilisation des [control groups](https://en.wikipedia.org/wiki/Cgroups) du noyau Linux.
7
+
8
+### Terminologie
9
+
10
+* *Conteneur :* Ensemble de ressources (système de fichier, mémoire, réseau) associées à un ou des processus.
11
+* *Image :* Modèle d'un conteneur. Dans le cas de Docker, un système de fichier (`/etc`, `/var`, ...) compressé.
12
+* *Dockerfile :* Fichier décrivant comment construire une image de façon automatique.
13
+* *Registre :* Serveur (optionnel) contenant les images.
14
+* *Tag :* Identifiant d'une image. Généralement `_username/app_`, par exemple `resel-tb/web-proxy`.
15
+
16
+### Intérêt
17
+
18
+Les utilisations de Docker sont multiples mais un des aspects le plus intéréssant pour le ResEl est la p... *(??? La légende raconte qu'El touré voulait du Wi-Fi, ce qui a empêché cette malheureuse personne de finir sa phrase...)*
19
+
20
+## Lancer un conteneur
21
+
22
+Une image peut être récupérée sur un registre :
23
+```
24
+docker pull jwilder/nginx-proxy
25
+```
26
+
27
+Ou compilé en local depuis un Dockerfile :
28
+```
29
+git clone https://github.com/jwilder/nginx-proxy.git
30
+docker build . --tag jwilder/nginx-proxy
31
+```
32
+
33
+
34
+
35
+## Créer une image
36
+
37
+TODO
38
+
39
+
40
+## Utilisation du Registry Interne : mobydick
41
+
42
+Un registre docker interne au ResEl est disponible sur mobydick(.adm.resel.fr). Il permet de partager les images docker du ResEl sans utiliser le registre publique (hub.docker.com), et sans devoir rebuilder depuis les sources (Dockerfile) à chaque fois.
43
+
44
+Une fois qu’une image est testée/validée, elle peut-être pushé sur le registre.
45
+Par exemple si en local j’ai l’image :
46
+
47
+```
48
+$docker ps
49
+
50
+ […]
51
+ resel/sympa:6.2 97cd19850580
52
+```
53
+
54
+Alors il faut associer l’image au dépôt :
55
+```
56
+docker tag 97cd19850580 mobydick.adm.maisel.enst-bretagne.fr:5000/resel/sympa:6.2
57
+```
58
+
59
+Puis envoyer l’image :
60
+```
61
+docker push mobydick.adm.maisel.enst-bretagne.fr:5000/resel/sympa:6.2
62
+```
63
+
64
+Maintenant l’image peut-être récupérée sur les autres machines :
65
+```
66
+docker pull mobydick.adm.maisel.enst-bretagne.fr:5000/resel/sympa:6.2
67
+```
68
+
69
+Il n’y a pas encore de certificat SSL sur le registre, il faut donc que les démons docker sur les clients aient été configurés avec l’option --insecure-registry. C’est le cas du template debian8 sur proxmox.
70
+```
71
+DOCKER_OPTS="--insecure-registry mobydick.adm.maisel.enst-bretagne.fr:5000”
72
+```
73
+
74
+La liste des images (et pleins d’autres choses) peuvent-être obtenues via l’API rest :
75
+```
76
+$ curl mobydick.adm.maisel.enst-bretagne.fr:5000/v2/_catalog
77
+ {"repositories":["resel/sympa”]}
78
+ ```
79
+
80
+
81
+## Guides
82
+
83
+TODO
84
+
85
+## Ressources utiles
86
+TODO
87
+
88
+## Articles liés
89
+TODO
90
+
91
+## TODO (rédacteur)
92
+* TODO
... ...
\ No newline at end of file