virli/tutorial/docker-basis/installation.md

174 lines
5.2 KiB
Markdown
Raw Normal View History

2015-10-07 01:45:39 +00:00
\newpage
2016-09-08 01:44:20 +00:00
Installation
============
2021-09-12 08:31:36 +00:00
Avant de voir de quoi il s'agit, afin de gagner du temps, nous allons commencer
par installer Docker.
2016-09-08 01:44:20 +00:00
## Prérequis
2017-10-16 20:59:22 +00:00
Docker repose sur plusieurs techniques implémentées dans les récents noyaux
2021-09-12 08:31:36 +00:00
Linux (et plus marginalement, Windows). Nous consacrerons les prochains cours à
comprendre leur fonctionnement. Ces techniques, contrairement aux instructions
de virtualisation qui rendent les hyperviseurs attractifs, ne sont pas limitées
à une architecture de microprocesseur spécifique ; cependant la communauté
autour de Docker utilise principalement l'architecture `amd64`, c'est sur cette
dernière que Docker pourra être exploité à son plein potentiel, suivi de près
par l'architecture `arm64`.
2016-09-08 01:44:20 +00:00
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 :
2017-10-17 06:29:07 +00:00
<div lang="en-US">
2016-09-08 01:44:20 +00:00
```
x86_64
2016-09-08 01:44:20 +00:00
```
2017-10-17 06:29:07 +00:00
</div>
2016-09-08 01:44:20 +00:00
2021-09-12 08:31:36 +00:00
Ou si vous êtes intrépide :
<div lang="en-US">
```
aarch64
```
</div>
2016-09-08 01:44:20 +00:00
Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
2017-10-17 06:29:07 +00:00
<div lang="en-US">
2016-09-08 01:44:20 +00:00
```
2021-09-12 08:31:36 +00:00
5.14.2-gentoo
2016-09-08 01:44:20 +00:00
```
2017-10-17 06:29:07 +00:00
</div>
2016-09-08 01:44:20 +00:00
2021-09-12 08:31:36 +00:00
Rassurez-vous, même si vous n'avez pas compilé le dernier noyau disponible sur
<kernel.org>, Docker s'utilise à partir de Linux 3.10.
2016-09-08 01:44:20 +00:00
## 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
2018-10-03 08:55:14 +00:00
a été nommé [`docker.io`](https://packages.debian.org/sid/docker.io).
2016-09-08 01:44:20 +00:00
Si dans un environnement de production, on préférera sans doute utiliser une
2021-09-12 08:31:36 +00:00
version déjà bien éprouvée (comme celle des dépôts de sa distribution), pour ce
cours, nous allons avoir besoin de la **dernière version
disponible**. Référez-vous à la documentation officielle correspondant à votre
distribution :
2016-09-08 01:44:20 +00:00
2020-09-21 21:48:16 +00:00
<https://docs.docker.com/engine/install/debian/>
2016-09-08 01:44:20 +00:00
2019-10-16 01:54:56 +00:00
**Et Kali Linux alors ?** Kali étant basée sur Debian, référez-vous à
la procédure d'installation de cette distribution.
2017-10-04 23:42:56 +00:00
2018-10-03 08:55:14 +00:00
## 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
2019-10-01 09:03:15 +00:00
pourrez interagir avec lui via votre ligne de commande habituelle.
2018-10-03 08:55:14 +00:00
Téléchargez la version correspondante à votre système d'exploitation :
2019-10-16 01:54:56 +00:00
* [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)
2018-10-03 08:55:14 +00:00
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.
2017-10-04 23:42:56 +00:00
2021-09-12 08:31:36 +00:00
Notez qu'à partir de janvier 2022, ces applications passent sous une licence
payante pour les grosses entreprises[^TODO]. Cela ne concernera nous concerne
pas, car la licence est gratuite pour un usage éducatif ou personnel. Notez que
ce n'est pas le binaire Docker qui change de licence, elle reste libre, mais
seulement les applications Docker Desktop.
[^TODO]: FIXME article de blog concernant docker desktop
2017-10-04 23:42:56 +00:00
## Évaluation en ligne
Si vous rencontrez des difficultés pour vous lancer, le projet
2018-10-03 08:55:14 +00:00
[Play With Docker](https://labs.play-with-docker.com/) vous donne accès à
2017-10-04 23:42:56 +00:00
un bac à sable dans lequel vous pourrez commencer à faire ce TP.
2016-09-08 01:44:20 +00:00
2019-10-16 01:54:56 +00:00
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.
2016-09-08 01:44:20 +00:00
## Vérifier la bonne marche de l'installation
Vous devriez maintenant être capable de lancer la commande suivante :
2017-10-17 06:29:07 +00:00
<div lang="en-US">
```bash
docker version
2016-09-08 01:44:20 +00:00
```
2017-10-17 06:29:07 +00:00
</div>
2016-09-08 01:44:20 +00:00
Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
2017-10-17 06:29:07 +00:00
<div lang="en-US">
2016-09-08 01:44:20 +00:00
```
Client:
2021-09-12 08:31:36 +00:00
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
Git commit: 3967b7d28e
Built: Wed Aug 4 12:55:42 2021
OS/Arch: linux/amd64
2021-09-12 08:31:36 +00:00
Context: default
Experimental: false
Server:
Engine:
2021-09-12 08:31:36 +00:00
Version: 20.10.8
API version: 1.41 (minimum version 1.12)
Go version: go1.16.6
Git commit: 75249d88bc
Built: Wed Aug 4 12:55:42 2021
OS/Arch: linux/amd64
Experimental: true
2020-09-21 21:48:16 +00:00
containerd:
2021-09-12 08:31:36 +00:00
Version: 1.5.5
GitCommit: 72cec4be58a9eb6b2910f5d10f1c01ca47d231c0.m
2020-09-21 21:48:16 +00:00
runc:
2021-09-12 08:31:36 +00:00
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2d
2020-09-21 21:48:16 +00:00
docker-init:
2021-09-12 08:31:36 +00:00
Version: 0.19.0
GitCommit: de40ad0
2016-09-08 01:44:20 +00:00
```
2017-10-17 06:29:07 +00:00
</div>
2016-09-08 01:44:20 +00:00
2018-10-03 08:55:14 +00:00
2016-09-08 01:44:20 +00:00
### `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 :
2017-10-17 06:29:07 +00:00
<div lang="en-US">
```bash
sudo service docker restart
2016-09-08 01:44:20 +00:00
```
2017-10-17 06:29:07 +00:00
</div>
2016-09-08 01:44:20 +00:00
### `permission denied`?
Si vous avez cette erreur : `dial unix /var/run/docker.sock: permission
2018-10-03 08:55:14 +00:00
denied.`, ajoutez votre utilisateur au groupe `docker` et **relancez votre
2016-09-08 01:44:20 +00:00
session** :
2017-10-17 06:29:07 +00:00
<div lang="en-US">
```bash
sudo gpasswd -a $USER docker
2016-09-08 01:44:20 +00:00
```
2017-10-17 06:29:07 +00:00
</div>
2016-09-08 01:44:20 +00:00
**Attention :** cette action n'est pas anodine d'un point de vue sécurité :
<https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface>