8fbb83c7e23623fff8235f5b9c83ea6aa6cb05e7
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 |