tuto: Prepare for 2022
This commit is contained in:
parent
37f0ba4b3d
commit
af860b40a0
40 changed files with 246 additions and 1974 deletions
|
|
@ -3,15 +3,19 @@
|
|||
Installation
|
||||
============
|
||||
|
||||
Avant de voir de quoi il s'agit, afin de gagner du temps, nous allons commencer
|
||||
par installer Docker.
|
||||
|
||||
## 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.
|
||||
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`.
|
||||
|
||||
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 :
|
||||
|
|
@ -22,15 +26,24 @@ x86_64
|
|||
```
|
||||
</div>
|
||||
|
||||
Ou si vous êtes intrépide :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
aarch64
|
||||
```
|
||||
</div>
|
||||
|
||||
Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
5.8.9-gentoo
|
||||
5.14.2-gentoo
|
||||
```
|
||||
</div>
|
||||
|
||||
Vous ne pourrez pas utiliser Docker avec un noyau antérieur à la version 3.10.
|
||||
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.
|
||||
|
||||
|
||||
## Par le gestionnaire de paquets
|
||||
|
|
@ -40,9 +53,10 @@ plus ou moins récente. Sous Debian et ses dérivés (Ubuntu, Mint, ...) le paqu
|
|||
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 :
|
||||
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 :
|
||||
|
||||
<https://docs.docker.com/engine/install/debian/>
|
||||
|
||||
|
|
@ -66,6 +80,13 @@ 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.
|
||||
|
||||
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
|
||||
|
||||
## Évaluation en ligne
|
||||
|
||||
|
|
@ -93,32 +114,33 @@ Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
|
|||
<div lang="en-US">
|
||||
```
|
||||
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
|
||||
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
|
||||
Context: default
|
||||
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
|
||||
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
|
||||
containerd:
|
||||
Version: 1.2.13
|
||||
GitCommit: 35bd7a5f69c13e1563af8a93431411cd9ecf5021
|
||||
Version: 1.5.5
|
||||
GitCommit: 72cec4be58a9eb6b2910f5d10f1c01ca47d231c0.m
|
||||
runc:
|
||||
Version: 1.0.0-rc10
|
||||
GitCommit:
|
||||
Version: 1.0.2
|
||||
GitCommit: v1.0.2-0-g52b36a2d
|
||||
docker-init:
|
||||
Version: 0.18.0
|
||||
GitCommit: fec3683b971d9c3ef73f284f176672c44b448662
|
||||
Version: 0.19.0
|
||||
GitCommit: de40ad0
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Docker est un écosystème d'outils de haut niveau, permettant d'utiliser des
|
|||
*conteneurs*.
|
||||
|
||||
Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel
|
||||
vous interagissez via un client (le programme `docker`). La communication entre
|
||||
nous interagissons via un client (le programme `docker`). La communication entre
|
||||
le daemon et le client s'effectuant sur une API REST généralement au travers
|
||||
d'une socket.
|
||||
|
||||
|
|
@ -21,6 +21,9 @@ au deamon dans la machine virtuelle.[^dockermachine]
|
|||
`DOCKER_HOST` ou de passer le paramètre `-H` suivi de l'URL de la socket à
|
||||
`docker`. Voir aussi : <https://docs.docker.com/machine/overview/>
|
||||
|
||||
Commençons par planter le décors, en détaillant les principaux mécanismes de
|
||||
Docker.
|
||||
|
||||
|
||||
## Les images Docker
|
||||
|
||||
|
|
@ -29,7 +32,7 @@ d'un ensemble de couches, agrégées selon le principe d'UnionFS.
|
|||
|
||||
Une image peut, par exemple, contenir :
|
||||
|
||||
* un système Ubuntu complet,
|
||||
* un système Ubuntu opérationnel,
|
||||
* le programme `busybox`,
|
||||
* un serveur web et votre application web, prêts à l'emploi,
|
||||
* ...
|
||||
|
|
@ -45,7 +48,7 @@ les outils fournis, soit les récupérer depuis un registre.
|
|||
|
||||
Alors que les images constituent la partie immuable de Docker, les conteneurs
|
||||
sont sa partie vivante. Chaque conteneur est créé à partir d'une image : à
|
||||
chaque fois que vous lancez un conteneur, une couche lecture/écriture est
|
||||
chaque fois que nous lançons un conteneur, une couche lecture/écriture est
|
||||
ajoutée au dessus de l'image. Cette couche est propre au conteneur et
|
||||
temporaire : l'image n'est pas modifiée par l'exécution d'un conteneur.
|
||||
|
||||
|
|
@ -67,3 +70,7 @@ Le registre utilisé de base est le [Docker Hub](https://hub.docker.com/) : il
|
|||
contient à la fois des images officielles (ubuntu, debian, nginx, ...), des
|
||||
images créées par des utilisateurs, mais aussi des images de grands éditeurs,
|
||||
payantes, à destination des entreprises.
|
||||
|
||||
Des registres alternatifs existent comme celui de
|
||||
[quay.io](https://quay.io/#FIXME), et les dépôts de sources tels que [GitHub](#FIXME) et
|
||||
[GitLab](#FIXME) le proposent également.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue