Docker est train de devenir incontournable. Je reviendrai pas ici sur ce qu’est docker ni son principe de fonctionnement, il y a de très bons articles qui expliquent la différence entre docker et une machine virtuelle, ses avantages et aussi ses inconvénients.
Cet article a pour but de vous aider à installer docker mais aussi des outils dans la bonne version tel que docker-compose dans votre Debian from scratch.
Pré-requis :
Rien de bien compliqué, une installation vierge et à jour d’une Debian stretch 64 bit. Un conseil lors de la mise en place de votre Debian, il est fortement recommandé de faire une partition spécialement pour docker.
En effet vous n’êtes pas a l’abri d une image mal faite qui remplirait votre espace disque plantant ainsi votre serveur.
Installation de docker
L installation de docker est simple et d ailleurs très bien documenter dans leur wiki :
https://docs.docker.com/engine/installation/linux/docker-ce/debian/
Je vais néanmoins reprendre la documentation ici et vous donnez les instructions de sécurisation très simple à mettre en place.
Ce qui est bon à savoir c’est que docker propose un dépôt pour Debian.
Vu que vous êtes sur une Debian vierge on peut sauter les étapes de nettoyage.
On commence par installer les packets nécessaires à l utilisation du dépôt docker en https
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
On importe la clé du dépôt docker :
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | apt-key add -
Maintenant on peut intégrer le dépôt docker dans notre sources.list
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
Il nous reste plus qu’a installer docker
apt-get update
apt-get install docker-ce
Maintenant on configure docker pour démarrer automatiquement
systemctl enable docker
Sécurisation de docker
Docker déconseille de lancer les conteneurs en tant que root. L installation crée déjà un group docker. On doit juste rattacher votre utilisateur standard au group docker. Ensuite pensez bien que vous devez lancer vos conteneurs avec cet utilisateur
j’appellerai ici mon utilisateur toto, je sais c’est pas original.
usermod -aG docker toto
Vérification de votre docker
On va vérifier la version et lancer un docker de test :
Pour la version
sudo -u toto docker version
qui va répondre :
Client:
Version: 17.09.0-ce
API version: 1.32
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:42:09 2017
OS/Arch: linux/amd64
Server:
Version: 17.09.0-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: afdb6d4
Built: Tue Sep 26 22:40:48 2017
OS/Arch: linux/amd64
Experimental: false
On lance un docker :
sudo -u toto docker run hello-world
qui répondra un jolie Hello from Docker!
Voila docker est prêt à être utilisé
Installation de docker-compose
Malheureusement le docker-compose disponible dans les dépôts officiels Debian est obsolète. Nous allons donc installer la dernière version en manuel.
Pour connaître la dernière version voici le lien :
https://github.com/docker/compose/releases
Normalement il n’y a pas besoin de dépendance pour que cela marche. Mais quand on regarde les dépendances du paquet officiel Debian on trouve cela :
python-backports.ssl-match-hostname python-cached-property python-docker python-dockerpty python-docopt python-functools32 python-jsonschema python-texttable python-websocket python-yaml
J ai testé sans , cela marche . Mais voulant être tranquille je les installe quand même :
apt install python-backports.ssl-match-hostname python-cached-property python-docker python-dockerpty python-docopt python-functools32 python-jsonschema python-texttable python-websocket python-yaml
On télécharge maintenant la dernière version du docker-compose. Vérifiez bien dans la ligne ci-dessous que la version est la mème que celle proposée dans le lien que je viens de vous fournir.
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
On verifie que tout fonctionne :
docker-compose version
qui répondra :
docker-compose version 1.16.1, build 6d1ac21
Conclusion
Voilà rien de bien compliquer, vous venez d’installer docker sous votre Debian ainsi que l utilitaire docker-compose. Souvenez vous que la bonne pratique est de ne pas lancer vos conteneurs en route !!
Nous venons ici que d’effleurer le haut de l iceberg. Docker est une technologie vaste et complexe.
Par la suite nous verrons :
- Les commandes simples de docker
- Les fichiers de configuration Dockerfile
- Les principes de volumes et de persistances des données
- Comment mettre à jour un conteneur
- Les environnement complexes multi-conteneurs avec docker-compose
- Des outils pour vous simplifier la vie comme Portainer ou Rancher
- Comment superviser vos conteneurs
- Comment sauvegarder vos conteneurs
Comme vous le voyez la route est encore longue avant de maîtriser complètement docker.