virli/tutorial/docker-basis/installation.md

179 lines
5.2 KiB
Markdown
Raw Normal View History

2016-09-08 01:44:20 +00:00
Installation
------------
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
2022-02-24 19:43:43 +00:00
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
```
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
### 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}
2022-09-13 21:19:59 +00:00
Depuis septembre 2021, ces applications sont passées sous une licence payante
pour les grosses entreprises[^DockerSubscription]. Cela ne vous concerne pas,
car la licence est gratuite pour un usage éducatif ou personnel.
2022-02-24 19:43:43 +00:00
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
### É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 adresse: <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
### 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">
```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
```
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
### 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
2022-09-13 21:19:59 +00:00
directory.`, le daemon 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">
```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`?
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">
```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
:::::