\newpage Installation ============ ## Prérequis Docker repose sur plusieurs techniques implémentées dans les récents noyaux Linux. Nous consacrerons les prochains cours à comprendre leur fonctionnement. Ces techniques ne sont pas limitées à une architecture de microprocesseur spécifique (comme peuvent l'être les instructions de virtualisation nécessaire pour rendre les hyperviseurs attractifs) ; cependant la communauté autour de Docker utilisant principalement l'architecture `amd64`, c'est sur cette dernière que Docker pourra être exploité à son plein potentiel. Avant de continuer, assurez-vous que votre machine a bien démarré sur un noyau 64 bits. Le retour de la commande `uname -m` doit vous indiquer :
``` x86_64 ```
Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
``` 4.13.4-gentoo ```
Vous ne pourrez pas utiliser Docker avec un noyau antérieur à la version 3.10. ## Par le gestionnaire de paquets En général, votre distribution mettra à votre disposition une version de Docker plus ou moins récente. Sous Debian et ses dérivés (Ubuntu, Mint, ...) le paquet a été nommé `docker.io`. Si dans un environnement de production, on préférera sans doute utiliser une version déjà bien éprouvée, pour ce cours, nous allons avoir besoin de la dernière version disponible. Référez-vous à la documentation officielle correspondant à votre distribution : ### Versions de Docker Historiquement, Docker est un projet open-source. Depuis peu, le business-model de la société a évolué et ils proposent désormais deux éditions : *Community Edition* et *Enterprise Edition*. La seconde est payante et possède un certain nombre d'atouts pour faciliter son adoption en entreprise (notamment pas mal d'interfaces graphiques, etc.). Le cœur de la technologie est quant à lui entièrement présent dans l'édition communautaire. Depuis mars dernier, les numéros de version de Docker sont tirés de l'année et du mois de parution (comme on a l'habitude avec Ubuntu 16.04 par exemple). Le rythme actuel de parution est d'une version par trimestre (mars, juin, septembre, décembre).[^versions] [^versions]: Tous les détails sur les versions (CE/EE et numérotation, fréquences, ...) sont résumés dans cette annonce : ## Évaluation en ligne Si vous rencontrez des difficultés pour vous lancer, le projet [Play With Docker](https://play-with-docker.com/) vous donne accès à un bac à sable dans lequel vous pourrez commencer à faire ce TP. ## Vérifier la bonne marche de l'installation Vous devriez maintenant être capable de lancer la commande suivante :
``` docker version ```
Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
``` Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.9 Git commit: cec0b72 Built: Thu Sep 14 19:57:50 2017 OS/Arch: linux/amd64 Server: Version: 17.09.0-ce API version: 1.32 (minimum version 1.12) Go version: go1.9 Git commit: cec0b72 Built: Thu Sep 14 21:50:58 2017 OS/Arch: linux/amd64 Experimental: false ```
### `no such file or directory`? Si vous avez cette erreur : `dial unix /var/run/docker.sock: no such file or directory.`, le deamon n'est sans doute pas lancé. Lancez-le :
``` sudo service docker restart ```
### `permission denied`? Si vous avez cette erreur : `dial unix /var/run/docker.sock: permission denied.`, ajoutez votre utilisateur au groupe `docker` et **relancer votre session** :
``` sudo gpasswd -a $USER docker ```
**Attention :** cette action n'est pas anodine d'un point de vue sécurité :