From dfbca225496897eac2c38f7149d471984cc2fb00 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 20 Sep 2021 00:19:49 +0200 Subject: [PATCH] tuto1: orthograf --- tutorial/1/rendu.md | 9 +- tutorial/1/tutorial.md | 2 +- tutorial/2/tutorial.md | 2 +- tutorial/3/tutorial.md | 2 +- tutorial/4/tutorial.md | 2 +- tutorial/5/tutorial.md | 2 +- tutorial/docker-advanced/compose.md | 14 +-- tutorial/docker-advanced/manual.md | 111 ++++++++++++++++------ tutorial/docker-advanced/security.md | 20 ++-- tutorial/docker-advanced/setup.md | 3 +- tutorial/docker-advanced/tutorial.md | 2 +- tutorial/docker-basis/cleaning.md | 2 +- tutorial/docker-basis/ex-flask.md | 4 +- tutorial/docker-basis/linking.md | 12 +-- tutorial/docker-basis/tutorial.md | 2 +- tutorial/docker-basis/volumes.md | 4 +- tutorial/docker-basis/what.md | 2 +- tutorial/docker-orchestration/tutorial.md | 6 +- tutorial/dockerfiles/tutorial.md | 6 +- tutorial/k8s/tutorial.md | 2 +- 20 files changed, 133 insertions(+), 76 deletions(-) diff --git a/tutorial/1/rendu.md b/tutorial/1/rendu.md index 30b6528..75be296 100644 --- a/tutorial/1/rendu.md +++ b/tutorial/1/rendu.md @@ -16,7 +16,7 @@ monitoring, d'un simple : Vous intégrerez les trois images (`influxdb`, `chronograf` et `telegraf`), -mettrez en place les *volumes* et *networks* nécessaire au bon fonctionnement +mettrez en place les *volumes* et *networks* nécessaires au bon fonctionnement de la stack. Le résultat final attendu doit permettre d'afficher dans `chronograf` l'hôte @@ -41,8 +41,11 @@ et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne sera pas pris en compte. +En cas de doute, [une interface](https://virli.nemunai.re/rendus/) et une API +sont disponibles pour consulter l'état de votre rendu. + Par ailleurs, n'oubliez pas de répondre à -[l'évaluation du cours](https://virli.nemunai.re/quiz/3). +[l'évaluation du cours](https://virli.nemunai.re/quiz/11). Tarball @@ -84,7 +87,7 @@ distinct. Une version récente de [Thunderbird](https://www.thunderbird.net/fr/) vous permettra d'envoyer des courriels signés. Si vous n'avez qu'une version ancienne, l'extension [Enigmail](https://enigmail.net) est très bien réputée -pour signer ses mails depuis Thunderbird. Bien entendu de nombreuses autres +pour signer ses mails depuis Thunderbird. Bien entendu, de nombreuses autres solutions sont disponibles. Utilisez le service automatique pour savoir si votre diff --git a/tutorial/1/tutorial.md b/tutorial/1/tutorial.md index 387d539..ad0f951 100644 --- a/tutorial/1/tutorial.md +++ b/tutorial/1/tutorial.md @@ -20,5 +20,5 @@ abstract: | vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ... diff --git a/tutorial/2/tutorial.md b/tutorial/2/tutorial.md index 53bc01d..bad7ddf 100644 --- a/tutorial/2/tutorial.md +++ b/tutorial/2/tutorial.md @@ -21,5 +21,5 @@ abstract: | vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ... diff --git a/tutorial/3/tutorial.md b/tutorial/3/tutorial.md index 597f1b8..f838fe4 100644 --- a/tutorial/3/tutorial.md +++ b/tutorial/3/tutorial.md @@ -20,5 +20,5 @@ abstract: | vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ... diff --git a/tutorial/4/tutorial.md b/tutorial/4/tutorial.md index ac67c87..0e3fb4d 100644 --- a/tutorial/4/tutorial.md +++ b/tutorial/4/tutorial.md @@ -19,5 +19,5 @@ abstract: | vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ... diff --git a/tutorial/5/tutorial.md b/tutorial/5/tutorial.md index 69e8ac2..4c35eac 100644 --- a/tutorial/5/tutorial.md +++ b/tutorial/5/tutorial.md @@ -20,5 +20,5 @@ abstract: | vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ... diff --git a/tutorial/docker-advanced/compose.md b/tutorial/docker-advanced/compose.md index 8de0b58..b06a773 100644 --- a/tutorial/docker-advanced/compose.md +++ b/tutorial/docker-advanced/compose.md @@ -44,9 +44,9 @@ fonctionnalités de Docker. Cette section énumère la liste des services (ou conteneurs) qui seront gérés par `docker-compose`. -Il peuvent dépendre d'une image à construire localement, dans ce cas ils auront -un fils `build`. Ou ils peuvent utiliser une image déjà existante, dans ce cas -ils auront un fils `image`. +Ils peuvent dépendre d'une image à construire localement, dans ce cas ils +auront un fils `build`. Ou ils peuvent utiliser une image déjà existante, dans +ce cas ils auront un fils `image`. Les autres fils sont les paramètres classiques que l'on va passer à `docker run`. @@ -86,8 +86,8 @@ l'emplacement à partager : Cette section est le pendant de la commandes `docker network`. Par défaut, Docker relie tous les conteneurs sur un bridge et fait du NAT pour -que les conteneur puisse accéder à l'Internet. Mais ce n'est pas le seul mode -possible ! +que les conteneurs puissent accéder à l'Internet. Mais ce n'est pas le seul +mode possible ! De la même manière que pour les `volumes`, cette section déclare les réseaux qui pourront être utilisés par les `services`. On pourrait donc avoir : @@ -105,7 +105,7 @@ networks: Le driver `host` réutilise la pile réseau de la machine hôte. Le conteneur pourra donc directement accéder au réseau, sans NAT et sans redirection de -port. Les ports alloués par le conteneur ne devront pas entrer en conflits avec +port. Les ports alloués par le conteneur ne devront pas entrer en conflit avec les ports ouverts par la machine hôte. @@ -122,7 +122,7 @@ un backup de base de données. #### Driver `bridge` -Le driver `bridge` crée un nouveau bridge qui sera partagée entre tous les +Le driver `bridge` crée un nouveau bridge qui sera partagé entre tous les conteneurs qui la référencent. Avec cette configuration, les conteneurs ont accès à une résolution DNS des diff --git a/tutorial/docker-advanced/manual.md b/tutorial/docker-advanced/manual.md index 815902b..f5eebbc 100644 --- a/tutorial/docker-advanced/manual.md +++ b/tutorial/docker-advanced/manual.md @@ -9,29 +9,29 @@ conteneurs manuellement, de la même manière que nous avons pu le faire avec l'interface d'administration du FIC et MySQL. -## Conteneur central : la base de données +## Conteneur central : la base de données Le premier conteneur qui doit être lancé est la base de données orientée séries -temporelles : +temporelles : [InfluxDB](https://www.influxdata.com/time-series-platform/influxdb/). En effet, tous les autres conteneurs ont besoin de cette base de données pour -fonctionner correctement\ : il serait impossible à *Chronograf* d'afficher les +fonctionner correctement\ : il serait impossible à *Chronograf* d'afficher les données sans base de données, tout comme *Telegraf* ne pourrait écrire les métriques dans une base de données à l'arrêt. Afin d'interagir avec les données, InfluxDB expose une [API REST](https://fr.wikipedia.org/wiki/Representational_state_transfer) sur le port 8086. Pour éviter d'avoir plus de configuration à réaliser, nous -allons tâcher d'utiliser ce même port pour tester localement : +allons tâcher d'utiliser ce même port pour tester localement :
``` -docker container run -p 8086:8086 -d --name mytsdb influxdb +docker container run -p 8086:8086 -d --name mytsdb influxdb:1.8 ```
Comme il s'agit d'une API REST, nous pouvons vérifier le bon fonctionnement de -notre base de données en appelant : +notre base de données en appelant :
``` @@ -41,8 +41,18 @@ notre base de données en appelant : ```
+Notez que comme nous avons lancé le conteneur en mode détaché (option `-d`), +nous ne voyons pas les logs qui sont écrits par le daemon. Pour les voir, il +faut utiliser la commande `docker container logs` : + +
+``` +docker container logs mytsdb +``` +
+ Si votre influxdb répond, vous pouvez vous y connecter en utilisant directement -le client fourni : +le client officiel (le binaire s'appelle `influx`) :
``` @@ -60,27 +70,63 @@ _internal Si vous aussi vous voyez la table `_internal`, bravo ! vous pouvez passer à la suite. -Notez que comme nous avons lancé le conteneur en mode détaché (option `-d`), -nous ne voyons pas les logs qui sont écrits par le daemon. Pour les voir, il -faut utiliser la commande `docker container logs` : +#### Mais quelle était cette commande magique ? {-} + +Oui, prenons quelques minutes pour l'analyser ... + +L'option `--link` permet de lier deux conteneurs. Ici nous souhaitons lancer un +nouveau conteneur pour notre client, en ayant un accès réseau au conteneur +`mytsdb` que nous avons créé juste avant. L'option `--link` prend en argument +le nom d'un conteneur en cours d'exécution (ici `mytsdb`, nom que l'on a +attribué à notre conteneur exécutant la base de données influxdb via l'option +`--name`), après les `:`, on précise le nom d'hôte que l'on souhaite attribuer +à cette liaison, au sein de notre nouveau conteneur. + +`influx -host influxdb` que nous avons placé après le nom de l'image, +correspond à la première commande que l'on va exécuter dans notre conteneur, à +la place du daemon `influxdb`. Ici nous voulons exécuter le client, il +s'appelle `influx`, auquel nous ajoutons le nom de l'hôte dans lequel nous +souhaitons nous connecter : grâce à l'option `--link`, le nom d'hôte à utiliser +est `influxdb`. + +L'option `--link` peut être particulièrement intéressante lorsque l'on souhaite +sauvegarder une base, car en plus de définir un nom d'hôte, cette option fait +hériter le nouveau conteneur des variables d'environnement du conteneur +auquel elle est liée : on a donc accès aux `$MYSQL_USER`, +`$MYSQL_PASSWORD`, ... + +On aurait aussi pu créer un réseau entre nos deux conteneurs (via `docker +network`), ou bien encore, on aurait pu exécuter notre client `influx` +directement dans le conteneur de sa base de données :
``` -docker container logs mytsdb +42sh$ docker container exec mytsdb influx -execute "show databases" +name: databases +name +--------------- +_internal ```
+Dans ce dernier exemple, nous n'avons pas besoin de préciser l'hôte, car +`influx` va tenter `localhost` par défaut, et puisque nous lançons la commande +dans notre conteneur `mytsdb`, il s'agit bien du conteneur où s'exécute +localement `influxdb`. -\hspace{2em}**Exercice :** Ajoutez à la ligne de commande de lancement du -conteneur les bon(s) volume(s) qui permettront de ne pas perdre les données -d'influxDB si nous devions redémarrer le conteneur. Aidez-vous pour cela de la -[documentation du conteneur](https://hub.docker.com/_/influxdb). + +#### Exercice : {-} + +Ajoutez à la ligne de commande de lancement du conteneur les bon(s) volume(s) +qui permettront de ne pas perdre les données d'influxDB si nous devions +redémarrer le conteneur. Aidez-vous pour cela de la [documentation du +conteneur](https://hub.docker.com/_/influxdb). ## Collecter les données locales Tentons maintenant de remplir notre base de données avec les métriques du -système. Pour cela, on commence par télécharger *Telegraf* : +système. Pour cela, on commence par télécharger *Telegraf* :
```bash @@ -89,7 +135,7 @@ tar xzv -C /tmp ```
-Puis, lançons *Telegraf* : +Puis, lançons *Telegraf* :
```bash @@ -98,17 +144,18 @@ cd /tmp/telegraf ```
-**Remarque :** La configuration par défaut va collecter les données de la -machine locale et les envoyer sur le serveur situé à -. Ici, cela fonctionne parce que l'on a fait en sorte de -rediriger le port de notre conteneur sur notre machine locale (option `-p`). +#### Remarque : {-} -Et observons ensuite : +La configuration par défaut va collecter les données de la machine locale et +les envoyer sur le serveur situé à . Ici, cela +fonctionne parce que l'on a fait en sorte de rediriger le port de notre +conteneur sur notre machine locale (option `-p`). + +Et observons ensuite :
```bash -42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \ - influxdb -host influxdb +42sh$ docker container run --rm -it --link mytsdb:zelda influxdb:1.8 influx -host zelda InfluxDB shell version: 1.8.9 > show databases name: databases @@ -135,13 +182,15 @@ system ```
-La nouvelle base a donc bien été créé et tant que nous laissons *Telegraf* +La nouvelle base a donc bien été créée et tant que nous laissons *Telegraf* lancé, celui-ci va régulièrement envoyer des métriques de cette machine. ## Afficher les données collectées -**Exercice :** À vous de jouer pour lancer le conteneur +#### Exercice : {-} + +À vous de jouer pour lancer le conteneur [*Chronograf*](https://store.docker.com/images/chronograf). L'interface de *Chronograf* est disponible sur le port 8888. @@ -149,9 +198,11 @@ L'interface de *Chronograf* est disponible sur le port 8888. Consultez la [documentation du conteneur](https://hub.docker.com/_/chronograf) si besoin. -**Attention :** la page d'accueil est vide au démarrage, pour savoir si vous avez -réussi, rendez-vous sous l'onglet *Hosts*, le nom de votre machine devrait y -apparaître. En cliquant dessus vous obtiendrez des graphiques similaires à ceux -ci-dessous : +#### Attention : {-} + +la page d'accueil est vide au démarrage, pour savoir si vous avez réussi, +rendez-vous sous l'onglet *Hosts*, le nom de votre machine devrait y +apparaître. En cliquant dessus, vous obtiendrez des graphiques similaires à +ceux ci-dessous : ![Résultat obtenu](chronograf_latest.png) diff --git a/tutorial/docker-advanced/security.md b/tutorial/docker-advanced/security.md index 3a4dcac..e2807aa 100644 --- a/tutorial/docker-advanced/security.md +++ b/tutorial/docker-advanced/security.md @@ -1,4 +1,7 @@ -## Limiter les ressources +\newpage + +Limiter les ressources +====================== Lorsque l'on gère un environnement de production, on souhaite bien évidemment éviter tout déni de service autant que possible. Ou @@ -31,11 +34,10 @@ Ainsi, lorsque la machine n'est pas chargée, que le processeur n'a pas constamment du travail à effectuer, l'ordonnanceur ne va pas empêcher une tâche très consommatrice en puissance de calcul de s'exécuter. -Par contre, sous une forte charge, si l'on défini que notre conteneur -exécutant un cpuburn ne peut pas utiliser plus de 50% des ressources -de la machine, ce pourcentage ne pourra effectivement pas être -dépassé, l'ordonnanceur privilégiant alors les autres processus du -système. +Par contre, sous une forte charge, si l'on définit que notre conteneur +exécutant un cpuburn ne peut pas utiliser plus de 50% des ressources de la +machine, ce pourcentage ne pourra effectivement pas être dépassé, +l'ordonnanceur privilégiant alors les autres processus du système. Par défaut, le taux maximal (1024 = 100%) d'utilisation CPU est donné aux nouveaux conteneurs, on peut le réduire en utilisant l'option @@ -46,7 +48,7 @@ aux nouveaux conteneurs, on peut le réduire en utilisant l'option En plus des dénis de service, on peut également vouloir se protéger contre des attaques provenant des conteneurs eux-mêmes. On n'est pas à -l'abri d'une vulnérabilité dans un des services exécuté dans un +l'abri d'une vulnérabilité dans un des services exécutés dans un conteneur. Plusieurs mécanismes sont mis en place pour accroître la difficulté du rebond. @@ -66,12 +68,12 @@ capabilities. ### seccomp -Si les capabilities sont un regroupement grossiers de fonctionnalités +Si les capabilities sont un regroupement grossier de fonctionnalités du noyau, seccomp est un filtre que l'on peut définir pour chaque appel système. Liste blanche, liste noire, tout est possible. Docker filtre notamment tous les appels systèmes qui pourraient -débordés à l'extérieur du conteneur : il n'est par exemple pas +déborder à l'extérieur du conteneur : il n'est par exemple pas possible de changer l'heure dans un conteneur, car il n'y a aujourd'hui aucun mécanisme pour isoler les visions des dates d'un conteneur à l'autre. diff --git a/tutorial/docker-advanced/setup.md b/tutorial/docker-advanced/setup.md index b4cc3a8..037c4db 100644 --- a/tutorial/docker-advanced/setup.md +++ b/tutorial/docker-advanced/setup.md @@ -6,7 +6,8 @@ Mise en place Dans la première partie du TP, nous avons installé l'environnement Docker principal, qui inclut le client, le daemon et toute sa machinerie. Mais le projet Docker propose de nombreuses autres ressources, souvent directement -trouvée dans les usages de la communauté, et parfois même approprié par Docker. +trouvées dans les usages de la communauté, et parfois même appropriées par +Docker. ## `docker-compose` diff --git a/tutorial/docker-advanced/tutorial.md b/tutorial/docker-advanced/tutorial.md index 3a247a4..9ae5026 100644 --- a/tutorial/docker-advanced/tutorial.md +++ b/tutorial/docker-advanced/tutorial.md @@ -20,5 +20,5 @@ abstract: | clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ... diff --git a/tutorial/docker-basis/cleaning.md b/tutorial/docker-basis/cleaning.md index d844836..281192e 100644 --- a/tutorial/docker-basis/cleaning.md +++ b/tutorial/docker-basis/cleaning.md @@ -16,7 +16,7 @@ l'option `--rm`. ## Conteneurs -Nous pouvons afficher l'ensemble des conteneurs, quelque soit leur état (en +Nous pouvons afficher l'ensemble des conteneurs, quel que soit leur état (en cours d'exécution, arrêtés,\ ...) avec la commande suivante :
diff --git a/tutorial/docker-basis/ex-flask.md b/tutorial/docker-basis/ex-flask.md index 9dfc686..018b7aa 100644 --- a/tutorial/docker-basis/ex-flask.md +++ b/tutorial/docker-basis/ex-flask.md @@ -93,7 +93,7 @@ docker container logs 0123456789abcdef Maintenant que nous avons un clone de , nous voulons absolument un clone de ! -Il s'agit du même service, mais ce n'est pas les mêmes images. +Il s'agit du même service, mais ce ne sont pas les mêmes images. On ne peut pas utiliser le même port sur la machine hôte, mais pour le reste, il s'agit des mêmes options\ : @@ -158,5 +158,5 @@ docker container stop 0123456789abcdef
Maintenant, si l'on relance un conteneur `youp0m`, il aura perdu toutes les -magnifiques images que l'on aura ajouté. Nous allons voir dans la partie +magnifiques images que l'on aura ajoutées. Nous allons voir dans la partie suivante comment rendre les données persistantes entre deux lancements. diff --git a/tutorial/docker-basis/linking.md b/tutorial/docker-basis/linking.md index 0e8e69f..b5d4be7 100644 --- a/tutorial/docker-basis/linking.md +++ b/tutorial/docker-basis/linking.md @@ -5,9 +5,9 @@ Lier les conteneurs Lorsque l'on gère des services un peu plus complexes qu'un simple gestionnaire d'images, on a souvent besoin de faire communiquer plusieurs services -entre-eux. +entre eux. -Notre premier service, `youp0m`, utilisais le système de fichiers pour stocker +Notre premier service, `youp0m`, utilisait le système de fichiers pour stocker ses données, mais la plupart des applications réclament un serveur de base de données. @@ -62,10 +62,10 @@ Pour changer le réseau principal joint par le conteneur, utiliser l'option ### Le réseau `host` -En utilisant ce réseau, vous abandonnez tout isolation sur cette partie du +En utilisant ce réseau, vous abandonnez toute isolation sur cette partie du conteneur et partagez donc avec l'hôte toute sa pile IP. Cela signifie, entre -autre, que les ports que vous chercherez à allouer dans le conteneur devront -être disponibles dans la pile de l'hôte et également que tout port allouer sera +autres, que les ports que vous chercherez à allouer dans le conteneur devront +être disponibles dans la pile de l'hôte et également que tout port alloué sera directement accessible, sans avoir à utiliser l'option `-p` du `run`. @@ -145,7 +145,7 @@ http://localhost:12345/ ### Entrer dans un conteneur en cours d'exécution -Dans certaines circonstances, les journaux ne sont pas suffisant pour déboguer +Dans certaines circonstances, les journaux ne sont pas suffisants pour déboguer correctement l'exécution d'un conteneur. En réalisant l'exercice, vous serez sans doute confronté à des comportements diff --git a/tutorial/docker-basis/tutorial.md b/tutorial/docker-basis/tutorial.md index 275f9ee..3dc9c4f 100644 --- a/tutorial/docker-basis/tutorial.md +++ b/tutorial/docker-basis/tutorial.md @@ -19,5 +19,5 @@ abstract: | clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ... diff --git a/tutorial/docker-basis/volumes.md b/tutorial/docker-basis/volumes.md index b0da174..2736a39 100644 --- a/tutorial/docker-basis/volumes.md +++ b/tutorial/docker-basis/volumes.md @@ -103,7 +103,7 @@ autre conteneur. Les volumes sont des espaces détachés des conteneurs, particulièrement utiles pour mettre à jour ou relancer un conteneur, sans perdre les données. Un autre -intérêt, est de pouvoir partager des fichiers entre plusieurs conteneurs. +intérêt est de pouvoir partager des fichiers entre plusieurs conteneurs. Il est ainsi parfaitement possible de lancer deux conteneurs qui partagent le même volume : @@ -115,7 +115,7 @@ docker container run -d --mount source=prod_youp0m,target=/images -p 8081:8080 n ```
-Dans cet exemple, l'ajout d'une image dans un conteneur, l'ajoutera également +Dans cet exemple, l'ajout d'une image dans un conteneur l'ajoutera également dans le second. Un exemple plus intéressant serait sur une architecture de micro-services diff --git a/tutorial/docker-basis/what.md b/tutorial/docker-basis/what.md index d822eb1..1290c9d 100644 --- a/tutorial/docker-basis/what.md +++ b/tutorial/docker-basis/what.md @@ -21,7 +21,7 @@ chaque commande `docker` tapée est passée au deamon dans la machine virtuelle. `DOCKER_HOST` ou de passer le paramètre `-H` suivi de l'URL de la socket à `docker`. Voir aussi : -Commençons par planter le décors, en détaillant les principaux mécanismes de +Commençons par planter le décor, en détaillant les principaux mécanismes de Docker. diff --git a/tutorial/docker-orchestration/tutorial.md b/tutorial/docker-orchestration/tutorial.md index 4841bdb..6833810 100644 --- a/tutorial/docker-orchestration/tutorial.md +++ b/tutorial/docker-orchestration/tutorial.md @@ -19,6 +19,6 @@ abstract: | électroniques, vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) - faire signer votre clef et n'hésitez pas à [faire signer votre - clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). -... + faire signer votre clef et n'hésitez pas à [faire signer la + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + ... diff --git a/tutorial/dockerfiles/tutorial.md b/tutorial/dockerfiles/tutorial.md index b820bd4..7a63414 100644 --- a/tutorial/dockerfiles/tutorial.md +++ b/tutorial/dockerfiles/tutorial.md @@ -19,6 +19,6 @@ abstract: | électroniques, vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) - faire signer votre clef et n'hésitez pas à [faire signer votre - clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). -... + faire signer votre clef et n'hésitez pas à [faire signer la + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + ... diff --git a/tutorial/k8s/tutorial.md b/tutorial/k8s/tutorial.md index 5275101..b9d0550 100644 --- a/tutorial/k8s/tutorial.md +++ b/tutorial/k8s/tutorial.md @@ -19,5 +19,5 @@ abstract: | vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) faire signer votre clef et n'hésitez pas à [faire signer la - votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). + vôtre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). ...