virli/tutorial/docker-basis/installation.md

152 lines
4.5 KiB
Markdown
Raw Normal View History

2015-10-07 01:45:39 +00:00
\newpage
2016-09-08 01:44:20 +00:00
Installation
============
## Prérequis
2017-10-16 20:59:22 +00:00
Docker repose sur plusieurs techniques implémentées dans les récents noyaux
Linux. Nous consacrerons les prochains cours à comprendre leur
2016-09-08 01:44:20 +00:00
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 :
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
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
```
2020-09-21 21:48:16 +00:00
5.8.9-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
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
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
version déjà bien éprouvée, pour ce cours, nous allons avoir besoin de la
2019-10-01 09:03:15 +00:00
**dernière version disponible**. Référez-vous à la documentation officielle
2016-09-08 02:40:34 +00:00
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
## É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:
2020-09-21 21:48:16 +00:00
Version: 19.03.12
2019-10-01 09:03:15 +00:00
API version: 1.40
2020-09-21 21:48:16 +00:00
Go version: go1.14.6
Git commit: 48a66213fe
Built: Thu Aug 6 01:27:59 2020
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
2020-09-21 21:48:16 +00:00
Version: 19.03.12
2019-10-01 09:03:15 +00:00
API version: 1.40 (minimum version 1.12)
2020-09-21 21:48:16 +00:00
Go version: go1.14.6
Git commit: 48a66213fe
Built: Thu Aug 6 01:26:25 2020
OS/Arch: linux/amd64
Experimental: true
2020-09-21 21:48:16 +00:00
containerd:
Version: 1.2.13
GitCommit: 35bd7a5f69c13e1563af8a93431411cd9ecf5021
runc:
Version: 1.0.0-rc10
GitCommit:
docker-init:
Version: 0.18.0
GitCommit: fec3683b971d9c3ef73f284f176672c44b448662
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>