Docker au ResEl

Généralités

Docker 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 du noyau Linux.

Terminologie

  • Conteneur : Ensemble de ressources (système de fichier, mémoire, réseau) associées à un ou des processus.
  • Image : Modèle d'un conteneur. Dans le cas de Docker, un système de fichier (/etc, /var, ...) compressé.
  • Dockerfile : Fichier décrivant comment construire une image de façon automatique.
  • Registre : Serveur (optionnel) contenant les images.
  • Tag : Identifiant d'une image. Généralement _username/app_, par exemple resel-tb/web-proxy.

Intérêt

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...)

Lancer un conteneur

Une image peut être récupérée sur un registre :

docker pull jwilder/nginx-proxy

Ou compilé en local depuis un Dockerfile :

git clone https://github.com/jwilder/nginx-proxy.git
docker build . --tag jwilder/nginx-proxy

Créer une image

TODO

Utilisation du Registry Interne : mobydick

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.

Une fois qu’une image est testée/validée, elle peut-être pushé sur le registre. Par exemple si en local j’ai l’image :

$docker ps

 […]
 resel/sympa:6.2  97cd19850580

Alors il faut associer l’image au dépôt :

docker tag 97cd19850580 mobydick.adm.maisel.enst-bretagne.fr:5000/resel/sympa:6.2

Puis envoyer l’image :

docker push mobydick.adm.maisel.enst-bretagne.fr:5000/resel/sympa:6.2

Maintenant l’image peut-être récupérée sur les autres machines :

docker pull mobydick.adm.maisel.enst-bretagne.fr:5000/resel/sympa:6.2

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.

DOCKER_OPTS="--insecure-registry mobydick.adm.maisel.enst-bretagne.fr:5000”

La liste des images (et pleins d’autres choses) peuvent-être obtenues via l’API rest :

$ curl mobydick.adm.maisel.enst-bretagne.fr:5000/v2/_catalog
 {"repositories":["resel/sympa”]}

Guides

TODO

Ressources utiles

TODO

Articles liés

TODO

TODO (rédacteur)

  • TODO