Services/Docker.md
... ...
@@ -1,18 +1,97 @@
1
-Docker au ResEl
2
-================
1
+--- title: Docker au ResEl
3 2
4
-## Généralités
3
+# Généralités
5 4
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.
5
+[Docker](https://www.docker.com/) est un logiciel libre permettant de gérer le déploiement de containers. Ceci 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.
6
+
7
+Au ResEl nous nous servons de Docker pour quelques services, ce qui permet de les tester facilement et de les déployer facilement sur les différentes marchines.
8
+
9
+Afin de faciliter la diffusion des images docker le ResEl possède un registre installé sur la machine (/Serveurs/Mobydick) accessible à l'adresse https://docker.resel.fr.
10
+
11
+# Motivations
12
+
13
+Docker a commencé à être installé fin 2015 au ResEl pour notament isoler les services présents sur [Pégase](/Serveurs/Pegase). Après une longue période vide, le service a été amélioré afin de simplifier les tests des services. D'abord pour le [site ResEl](https://git.resel.fr/resel/myresel) ensuite pour d'autres services comme le LDAP.
14
+
15
+Si aujourd'hui il n'est pour des raisons évidentes pas présent pour tous les services, l'harmonisation des services ResEl tend à lui donner une grande importance pour le déploiement.
7 16
8 17
### Terminologie
9 18
19
+Cette terminologie est nécessaire pour bien comprendre les principes, cependant je vous conseille de lire [le glossaire officiel](https://docs.docker.com/engine/reference/glossary/).
20
+
10 21
* *Conteneur :* Ensemble de ressources (système de fichier, mémoire, réseau) associées à un ou des processus.
11 22
* *Image :* Modèle d'un conteneur. Dans le cas de Docker, un système de fichier (`/etc`, `/var`, ...) compressé.
12 23
* *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`.
24
+* *Registre :* Serveur (optionnel) contenant les images. docker.resel.fr chez nous.
25
+* *Tag :* Identifiant d'une image. Généralement `registre/sercice:version`, par exemple `docker.resel.fr/myresel:latext`.
26
+
27
+
28
+
29
+# Mise en place
30
+
31
+## Hote Docker
32
+La mise en place d'un hote Docker sur n'importe quelle machine est très simple.
33
+La méthode recommandée est d'utiliser le [playbook Ansible associé](https://git.resel.fr/confs/ansible/blob/master/playbooks/docker-host.yml)
34
+
35
+Voici cepedant la méthode manuelle suivant la [documentation officielle](https://docs.docker.com/engine/installation/linux/debian/) :
36
+
37
+Installez les dépendances nécéssaires :
38
+```bash
39
+sudo apt-get install \
40
+ apt-transport-https \
41
+ ca-certificates \
42
+ curl \
43
+ software-properties-common
44
+```
45
+
46
+Ajoutez la clé GPG officielle :
47
+```bash
48
+curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
49
+```
50
+
51
+Vérifiez que l'id de la clé est correct : `9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88`
52
+```bash
53
+sudo apt-key fingerprint 0EBFCD88
54
+```
55
+
56
+Ajoutez le repo Docker :
57
+```bash
58
+sudo add-apt-repository \
59
+ "deb [arch=amd64] https://download.docker.com/linux/debian \
60
+ $(lsb_release -cs) \
61
+ stable"
62
+```
63
+
64
+Mettez à jour l'index avec un `apt update` puis installez docker :
65
+```bash
66
+apt update && apt install docker-ce
67
+```
68
+
69
+:warning: Si vous-vous trouvez dans le VLAN admin ou un autre VLAN sans internet
70
+il faut configurer apt pour passer par le proxy apt. Créez le fichier
71
+`/etc/apt/conf.d/01reselproxy-docker.j2` :
72
+```
73
+Acquire::http::proxy::apt.dockerproject.org "pegase.adm.resel.fr:3128";
74
+Acquire::https::proxy::apt.dockerproject.org "pegase.adm.resel.fr:3128";
75
+```
76
+puis refaites `apt update`.
77
+
78
+Vérifiez que Docker fonctionne correctement avec la commande suivante :
79
+```
80
+sudo docker run hello-world
81
+```
82
+
83
+Vous pouvez ensuite utiliser docker "normalement".
84
+
85
+Pour utiliser le registre du ResEl (mobydick) vous devez faire un peu plus de configuration. En effet celui-ci n'est pas accessible au public et il faut donc s'y authentifier.
86
+
87
+TODO : Comment s'auth au registre du ResEl
88
+
89
+## Registre Docker (mobydick)
90
+TODO : installer un registre Docker au ResEl
91
+
92
+# Utilisation
15 93
94
+
16 95
### Intérêt
17 96
18 97
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...)*
... ...
@@ -92,4 +171,4 @@ TODO
92 171
TODO
93 172
94 173
## TODO (rédacteur)
95
-* TODO
... ...
\ No newline at end of file
0
+* TODO