\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` :
``` 5.8.9-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`](https://packages.debian.org/sid/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 : **Et Kali Linux alors ?** Kali étant basée sur Debian, référez-vous à la procédure d'installation de cette distribution. ## Windows et macOS Bien que les fonctionnalités de contenerisation de Docker que nous utiliserons ne soient disponibles que sous Linux, il est possible d'utiliser Docker de manière déportée : le daemon Docker tournera dans une VM Linux, mais vous pourrez interagir avec lui via votre ligne de commande habituelle. Téléchargez la version correspondante à votre système d'exploitation : * [Docker for Mac](https://hub.docker.com/editions/community/docker-ce-desktop-mac) * [Docker for Windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows) Une fois l'installation terminée, lancez l'application : elle ajoutera une icône dans la zone de notification, vous permettant de contrôler l'exécution de la machine virtuelle sous-jacente. ## Évaluation en ligne Si vous rencontrez des difficultés pour vous lancer, le projet [Play With Docker](https://labs.play-with-docker.com/) vous donne accès à un bac à sable dans lequel vous pourrez commencer à faire ce TP. Il vous faudra disposer [d'un compte Docker](https://hub.docker.com/signup). Une fois identifié, vous pourrez créer une nouvelle instance, et vous connecter dessus via SSH. ## Vérifier la bonne marche de l'installation Vous devriez maintenant être capable de lancer la commande suivante :
```bash docker version ```
Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
``` Client: Version: 19.03.12 API version: 1.40 Go version: go1.14.6 Git commit: 48a66213fe Built: Thu Aug 6 01:27:59 2020 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 19.03.12 API version: 1.40 (minimum version 1.12) Go version: go1.14.6 Git commit: 48a66213fe Built: Thu Aug 6 01:26:25 2020 OS/Arch: linux/amd64 Experimental: true containerd: Version: 1.2.13 GitCommit: 35bd7a5f69c13e1563af8a93431411cd9ecf5021 runc: Version: 1.0.0-rc10 GitCommit: docker-init: Version: 0.18.0 GitCommit: fec3683b971d9c3ef73f284f176672c44b448662 ```
### `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 :
```bash 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 **relancez votre session** :
```bash sudo gpasswd -a $USER docker ```
**Attention :** cette action n'est pas anodine d'un point de vue sécurité :