Update tuto2

This commit is contained in:
nemunaire 2021-09-23 02:55:18 +02:00
commit 2c5317f4f9
35 changed files with 3587 additions and 471 deletions

View file

@ -3,14 +3,14 @@
Registres
=========
**Outils nécessaires :** `curl`, `gunzip`, `jq`, `tar`.
**Outils nécessaires :** `curl`, `gunzip`, `jq`, `tar`.
* * * * *
Nous allons appréhender le fonctionnement d'un registre OCI,
et préparer le *rootfs* d'une image de base (Debian, Ubuntu, hello, ...) : en
et préparer le *rootfs* d'une image de base (Debian, Ubuntu, hello, ...) : en
nous préoccupant simplement de la couche la plus basse (qui ne contient pas de
modification ou de suppression : chaque fichier est normal).
modification ou de suppression : chaque fichier est normal).
## Authentification
@ -18,7 +18,7 @@ modification ou de suppression : chaque fichier est normal).
L'authentification est facultative et est laissée à l'appréciation du
fournisseur de service. Étant donné que nous allons utiliser le [Docker
Hub](https://hub.docker.com/), le registre par défaut de `docker`, nous allons
devoir nous plier à leur mécanisme d'authentification : chaque requête au
devoir nous plier à leur mécanisme d'authentification : chaque requête au
registre doit être effectuée avec un jeton, que l'on obtient en s'authentifiant
auprès d'un service dédié. Ce service peut délivrer un jeton sans authentifier
l'interlocuteur, en restant anonyme ; dans ce cas, on ne pourra accéder qu'aux
@ -26,8 +26,8 @@ images publiques. Ça tombe bien, c'est ce qui nous intéresse aujourd'hui !
Il n'en reste pas moins que le jeton est forgé pour un service donné (dans
notre cas `registry.docker.io`) et avec un objectif bien cerné (pour nous, on
souhaite récupérer le contenu du dépôt[^quiddepot] `hello-world` :
<span lang="en-US">`repository:hello-world:pull`</span>). Ce qui nous donne :
souhaite récupérer le contenu du dépôt[^quiddepot] `hello-world` :
<span lang="en-US">`repository:hello-world:pull`</span>). Ce qui nous donne :
[^quiddepot]: Dans un registre, les fichiers qui composent l'image forment un
dépôt (*repository*).
@ -50,7 +50,7 @@ souhaite récupérer le contenu du dépôt[^quiddepot] `hello-world` :
C'est le `token` qu'il faudra fournir lors de nos prochaines requêtes au
registre.
Avec `jq`, on peut l'extraire grâce à :
Avec `jq`, on peut l'extraire grâce à :
<div lang="en-US">
```bash
@ -58,7 +58,7 @@ Avec `jq`, on peut l'extraire grâce à :
```
</div>
**Attention :** le token expire ! Pensez à le renouveler régulièrement.
**Attention :** le token expire ! Pensez à le renouveler régulièrement.
En cas d'erreur inexplicable, vous pouvez ajouter un `-v` à la ligne de
commande `curl`, afin d'afficher les en-têtes. Prêtez une attention toute
@ -68,7 +68,7 @@ particulière à `Www-Authenticate`.
## Lecture de l'index d'images
Une fois en possession de notre jeton, nous pouvons maintenant demander l'index
d'images à notre registre :
d'images à notre registre :
<div lang="en-US">
```bash
@ -87,7 +87,7 @@ somme de contrôle.
## Lecture du manifest
Demandons maintenant le manifest correspondant à notre matériel et à notre
système d'exploitation :
système d'exploitation :
<div lang="en-US">
```bash
@ -109,7 +109,7 @@ répertoire `blobs`, il ne s'agit en effet plus de manifest. Si les manifests
sont toujours stockés par le registre lui-même, les blobs peuvent être délégués
à un autre service, par exemple dans le cloud, chez Amazon S3, un CDN, etc.
Pour récupérer la configuration de l'image :
Pour récupérer la configuration de l'image :
<div lang="en-US">
```bash
@ -120,7 +120,7 @@ curl -s --location \
</div>
Enfin, armé du `digest` de notre couche, il ne nous reste plus qu'à la demander gentiment :
Enfin, armé du `digest` de notre couche, il ne nous reste plus qu'à la demander gentiment :
<div lang="en-US">
```bash
@ -134,7 +134,7 @@ wget --header "Authorization: Bearer ${TOKEN}" \
Le type indiqué par le manifest pour cette couche était
`application/vnd.docker.image.rootfs.diff.tar.gzip`, il s'agit donc d'une
tarball compressée au format gzip :
tarball compressée au format gzip :
<div lang="en-US">
```bash
@ -143,7 +143,7 @@ tar xzf ${DL_LAYER} -C rootfs
```
</div>
Et voilà, nous avons extrait notre première image, nous devrions pouvoir :
Et voilà, nous avons extrait notre première image, nous devrions pouvoir :
<div lang="en-US">
```bash
@ -156,7 +156,7 @@ Hello from Docker!
## Exercice {-}
Réalisez un script pour automatiser l'ensemble de ces étapes :
Réalisez un script pour automatiser l'ensemble de ces étapes :
<div lang="en-US">
```bash