2016-09-08 01:44:20 +00:00
|
|
|
|
Installation
|
2021-09-21 09:44:12 +00:00
|
|
|
|
------------
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Docker repose sur plusieurs techniques implémentées dans les noyaux Linux
|
|
|
|
|
récents (et plus marginalement, Windows). 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
|
2022-02-24 19:43:43 +00:00
|
|
|
|
64 bits. Le retour de la commande `uname -m` doit vous indiquer :
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
|
<div lang="en-US">
|
2016-09-08 01:44:20 +00:00
|
|
|
|
```
|
2018-11-16 01:38:41 +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
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Ou si vous êtes intrépide :
|
2021-09-12 08:31:36 +00:00
|
|
|
|
|
|
|
|
|
<div lang="en-US">
|
|
|
|
|
```
|
|
|
|
|
aarch64
|
|
|
|
|
```
|
|
|
|
|
</div>
|
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
|
<div lang="en-US">
|
2016-09-08 01:44:20 +00:00
|
|
|
|
```
|
2021-09-16 01:45:54 +00:00
|
|
|
|
5.14.4-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
|
2021-09-16 01:45:54 +00:00
|
|
|
|
[`kernel.org`](https://www.kernel.org/), Docker s'utilise à partir de Linux 3.10.
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
### Sous Linux, par le gestionnaire de paquets
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
|
|
|
|
En général, votre distribution mettra à votre disposition une version de Docker
|
2022-02-24 19:43:43 +00:00
|
|
|
|
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
|
2022-02-24 19:43:43 +00:00
|
|
|
|
version déjà bien éprouvée (comme celle des dépôts de sa distribution), pour
|
|
|
|
|
bien suivre les exemples, nous allons avoir besoin de la **dernière version
|
2021-09-12 08:31:36 +00:00
|
|
|
|
disponible**. Référez-vous à la documentation officielle correspondant à votre
|
2022-02-24 19:43:43 +00:00
|
|
|
|
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
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
::::: {.question}
|
|
|
|
|
|
|
|
|
|
**Et Kali Linux alors ?** Kali étant basée sur Debian, référez-vous à
|
2019-10-16 01:54:56 +00:00
|
|
|
|
la procédure d'installation de cette distribution.
|
2017-10-04 23:42:56 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
:::::
|
2017-10-04 23:42:56 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
### Sous Windows et macOS
|
2018-10-03 08:55:14 +00:00
|
|
|
|
|
|
|
|
|
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
|
2022-02-24 19:43:43 +00:00
|
|
|
|
manière déportée : le daemon Docker tournera dans une machine virtuelle Linux,
|
|
|
|
|
mais vous pourrez interagir avec lui via votre ligne de commande habituelle.
|
|
|
|
|
|
|
|
|
|
Téléchargez la version correspondant à votre système d'exploitation :
|
2018-10-03 08:55:14 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
* Docker Desktop for Mac :\
|
|
|
|
|
<https://hub.docker.com/editions/community/docker-ce-desktop-mac>
|
2018-10-03 08:55:14 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
* Docker Desktop for Windows :\
|
|
|
|
|
<https://hub.docker.com/editions/community/docker-ce-desktop-windows>
|
2018-10-03 08:55:14 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Une fois l'installation terminée, lancez l'application : elle ajoutera une
|
2018-10-03 08:55:14 +00:00
|
|
|
|
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
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
::::: {.warning}
|
|
|
|
|
|
|
|
|
|
Depuis septembre 2021, ces applications passent sous une licence payante pour
|
|
|
|
|
les grosses entreprises[^DockerSubscription]. Cela ne nous concerne pas, car la
|
|
|
|
|
licence est gratuite pour un usage éducatif ou personnel.
|
|
|
|
|
|
|
|
|
|
Notez que cela ne concerne pas le projet ou le binaire Docker : ceux-ci restent
|
|
|
|
|
libres. Seules les applications Docker Desktop sont concernées.
|
|
|
|
|
|
|
|
|
|
:::::
|
2021-09-12 08:31:36 +00:00
|
|
|
|
|
2021-09-16 01:45:54 +00:00
|
|
|
|
[^DockerSubscription]: <https://www.docker.com/blog/updating-product-subscriptions/>
|
2017-10-04 23:42:56 +00:00
|
|
|
|
|
2021-09-21 09:44:12 +00:00
|
|
|
|
### Évaluation en ligne
|
2017-10-04 23:42:56 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Si vous rencontrez des difficultés pour vous lancer, le projet Play With
|
|
|
|
|
Docker[^PlayWithDocker] vous donne accès à un bac à sable
|
|
|
|
|
dans lequel vous pourrez commencer à faire les exercices à suivre.
|
|
|
|
|
|
|
|
|
|
[^PlayWithDocker]: Play With Docker est accessible à cette addresse : <https://labs.play-with-docker.com/>
|
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
|
|
|
|
|
2021-09-21 09:44:12 +00:00
|
|
|
|
### Vérifier la bonne marche de l'installation
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Vous devriez maintenant être capable de lancer la commande suivante :
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
|
<div lang="en-US">
|
2018-11-16 01:38:41 +00:00
|
|
|
|
```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
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
|
<div lang="en-US">
|
2016-09-08 01:44:20 +00:00
|
|
|
|
```
|
2018-11-16 01:38:41 +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
|
2018-11-16 01:38:41 +00:00
|
|
|
|
OS/Arch: linux/amd64
|
2021-09-12 08:31:36 +00:00
|
|
|
|
Context: default
|
2018-11-16 01:38:41 +00:00
|
|
|
|
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
|
2018-11-16 01:38:41 +00:00
|
|
|
|
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
|
|
|
|
|
2021-09-21 09:44:12 +00:00
|
|
|
|
### Problèmes courants
|
|
|
|
|
|
|
|
|
|
#### `no such file or directory`?
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
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 :
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
|
<div lang="en-US">
|
2018-11-16 01:38:41 +00:00
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
2021-09-21 09:44:12 +00:00
|
|
|
|
#### `permission denied`?
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
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
|
2022-02-24 19:43:43 +00:00
|
|
|
|
session** :
|
2016-09-08 01:44:20 +00:00
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
|
<div lang="en-US">
|
2018-11-16 01:38:41 +00:00
|
|
|
|
```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
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
::::: {.warning}
|
|
|
|
|
|
|
|
|
|
Cette action n'est pas anodine d'un point de vue de la sécurité :
|
|
|
|
|
|
2021-09-16 01:45:54 +00:00
|
|
|
|
<https://docs.docker.com/engine/security/#docker-daemon-attack-surface>
|
2022-02-24 19:43:43 +00:00
|
|
|
|
|
|
|
|
|
:::::
|