\newpage Installation ============ ## Prérequis Docker repose sur plusieurs techniques implémentés dans les récents noyaux Linux. Nous consacrerons les prochains cours à comprendre leurs 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.7.2-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 : Installez également le paquet `docker-compose`. ## 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: 1.12.1 API version: 1.24 Go version: go1.7 Git commit: 23cf638 Built: OS/Arch: linux/amd64 Server: Version: 1.12.1 API version: 1.24 Go version: go1.7 Git commit: 23cf638 Built: OS/Arch: linux/amd64 ``` ### `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é : ## Rendu ### Questions 1. Dans quel langage Docker a-t-il été écrit ? 1. Décrivez une méthode permettant à un utilisateur (non-root), présent dans le groupe `docker`, d'effectuer une action privilégiée impactant la machine hôte.