tuto1 ready for 2022

This commit is contained in:
nemunaire 2021-09-16 03:45:54 +02:00
parent af860b40a0
commit d8d9365a4b
10 changed files with 88 additions and 62 deletions

Binary file not shown.

View File

@ -81,8 +81,11 @@ distinct.
### Signature du courriel ### Signature du courriel
[Enigmail](https://enigmail.net) est une extension très bien réputée pour Une version récente de [Thunderbird](https://www.thunderbird.net/fr/) vous
signer ses mails depuis Thunderbird. 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
solutions sont disponibles.
Utilisez le service automatique <signcheck@nemunai.re> pour savoir si votre Utilisez le service automatique <signcheck@nemunai.re> pour savoir si votre
courriel est correctement signé et que je suis en mesure de vérifier la courriel est correctement signé et que je suis en mesure de vérifier la
@ -110,7 +113,7 @@ C'est que votre clef publique n'est pas dans mon trousseau et que les
méthodes de récupération automatique n'ont pas permis de la méthodes de récupération automatique n'ont pas permis de la
trouver. Uploadez votre clef sur [un serveur de trouver. Uploadez votre clef sur [un serveur de
clefs](https://keys.openpgp.org/) ou envoyez un courriel au service clefs](https://keys.openpgp.org/) ou envoyez un courriel au service
avec votre clef publique en pièce-jointe, avant de retenter votre avec votre clef publique en pièce jointe, avant de retenter votre
rendu. rendu.

View File

@ -11,10 +11,10 @@ abstract: |
\vspace{1em} \vspace{1em}
Le TP se termine par un petit projet à rendre à <virli@nemunai.re> au Le TP se termine par un petit projet à rendre à <virli@nemunai.re> au
plus tard le **mardi 22 septembre 2020 à 12 h 42**. Consultez la plus tard le **mercredi 22 septembre 2021 à 23 h 42**. Consultez la
dernière section de chaque partie pour plus d'information sur les dernière section de chaque partie pour plus d'information sur les
éléments à rendre. Et n'oubliez pas de répondre aux [questions de éléments à rendre. Et n'oubliez pas de répondre aux [questions de
cours](https://virli.nemunai.re/quiz/3). cours](https://virli.nemunai.re/quiz/11).
En tant que personnes sensibilisées à la sécurité des échanges électroniques, En tant que personnes sensibilisées à la sécurité des échanges électroniques,
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à

View File

@ -11,7 +11,7 @@ contiendra les paramètres d'exécution.
<div lang="en-US"> <div lang="en-US">
```yaml ```yaml
version: "3.8" version: "3.9"
services: services:
influxdb: influxdb:
... ...

View File

@ -46,10 +46,9 @@ le client fourni :
<div lang="en-US"> <div lang="en-US">
``` ```
42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \ 42sh$ docker container run --rm -it --link mytsdb:influxdb influxdb:1.8 influx -host influxdb
influxdb -host influxdb Connected to http://influxdb:8086 version 1.8.9
Connected to http://influxdb:8086 version 1.8.2 InfluxDB shell version: 1.8.9
InfluxDB shell version: 1.8.2
> show databases > show databases
name: databases name: databases
name name
@ -85,7 +84,7 @@ système. Pour cela, on commence par télécharger *Telegraf* :
<div lang="en-US"> <div lang="en-US">
```bash ```bash
curl https://dl.influxdata.com/telegraf/releases/telegraf-1.15.3_linux_amd64.tar.gz | \ curl https://dl.influxdata.com/telegraf/releases/telegraf-1.19.2_linux_amd64.tar.gz | \
tar xzv -C /tmp tar xzv -C /tmp
``` ```
</div> </div>
@ -110,7 +109,7 @@ Et observons ensuite :
```bash ```bash
42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \ 42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \
influxdb -host influxdb influxdb -host influxdb
InfluxDB shell version: 1.8.2 InfluxDB shell version: 1.8.9
> show databases > show databases
name: databases name: databases
name name

View File

@ -15,11 +15,8 @@ Dans cette partie, nous allons avoir besoin de `docker-compose`.
Ce projet ne bénéficie pas d'une intégration au sein du projet Docker et doit Ce projet ne bénéficie pas d'une intégration au sein du projet Docker et doit
être téléchargé séparément, car originellement, le projet était développé par être téléchargé séparément, car originellement, le projet était développé par
une équipe indépendante[^fig]. Il constitue aujourd'hui une brique de une équipe indépendante. Il constitue aujourd'hui une brique de l'écosystème
l'écosystème Docker, presque indispensable ! Docker, presque indispensable !
[^fig]: Le site du projet initial est toujours en ligne :
<https://www.fig.sh/>.
### Par le gestionnaire de paquets ### Par le gestionnaire de paquets
@ -33,7 +30,7 @@ tous les scripts. Nous pouvons l'installer en suivant la procédure suivante :
<div lang="en-US"> <div lang="en-US">
```bash ```bash
curl -L https://github.com/docker/compose/releases/download/1.27.2/docker-compose-Linux-x86_64 \ curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64 \
> /usr/bin/docker-compose > /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose chmod +x /usr/bin/docker-compose
``` ```
@ -54,7 +51,7 @@ Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
<div lang="en-US"> <div lang="en-US">
``` ```
42sh$ docker-compose --version 42sh$ docker-compose --version
docker-compose version: 1.27.2 docker-compose version: 1.29.2
``` ```
</div> </div>

View File

@ -25,5 +25,5 @@ s'agit d'un mécanisme de séries temporelles (*Time Series*) moderne, que l'on
peut utiliser pour stocker toute sorte de données liées à un indice temporel. peut utiliser pour stocker toute sorte de données liées à un indice temporel.
La pile logicielle TICK propose de collecter des métriques, en les enregistrant La pile logicielle TICK propose de collecter des métriques, en les enregistrant
dans une base de données adaptées et permet en suite de les ressortir sous dans une base de données adaptées et permet ensuite de les ressortir sous
forme de graphiques ou de les utiliser pour faire des alertes intelligentes. forme de graphiques ou de les utiliser pour faire des alertes intelligentes.

View File

@ -68,16 +68,41 @@ docker image ls
</div> </div>
### Tag ### *Image ID*, nom, tag
Vous devriez constater la présence de plusieurs images « Ubuntu », mais chacune Chaque image est identifiable par son *Image ID* : il s'agit d'un long
a un *TAG* différent. En effet, souvent, il existe plusieurs versions d'une même identifiant unique. Chaque modification qui est apportée à l'image
image. Pour Ubuntu par exemple, nous avons la possibilité de lancer la version générera un *Image ID* différent. Un peu comme un identifiant de
`trusty`, `xenial`, `zesty` ou `artful`. commit dans Git.
Pour s'y retrouver, on utilise habituellement les noms des images :
`hello-world` est ainsi le nom de l'image
`1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792`.
Lorsque, comme dans le cas d'Ubuntu, il y a plusieurs *versions*
disponibles, il est possible de préciser la version au moyen d'un
*tag*. En consultant [la
documentation](https://hub.docker.com/_/ubuntu) qui accompagne chaque
conteneur, nous pouvons constater la présence de plusieurs versions
d'Ubuntu : `trusty`, `xenial`, `focal` ou `bionic`.
Par convention, lorsque l'on souhaite désigner un tag en particulier,
on utilise la syntaxe suivante :
<div lang="en-US">
```
ubuntu:focal
```
</div>
Par exemple, pour lancer un conteneur Ubuntu Focal, on utilisera :
<div lang="en-US">
```
docker container run ubuntu:focal
```
</div>
Chaque image est identifiable par son *Image ID* unique ; les noms d'images
ainsi que leurs tags sont, comme les tags Git, une manière humainement plus
simple de faire référence aux identifiants.
Chaque nom d'image possède au moins un tag associé par défaut : *latest*. C'est Chaque nom d'image possède au moins un tag associé par défaut : *latest*. C'est
le tag qui est automatiquement recherché lorsque l'on ne le précise pas en le tag qui est automatiquement recherché lorsque l'on ne le précise pas en
@ -129,8 +154,8 @@ couche propre au conteneur dans l'UnionFS.
![Images vs. conteneurs](img-vs-cntr.png "Images vs. conteneurs"){ width=85% } ![Images vs. conteneurs](img-vs-cntr.png "Images vs. conteneurs"){ width=85% }
Dans ce schéma, on considère les images comme étant la partie figée de Docker à Dans le schéma ci-après, on considère les images comme étant la partie figée de
partir desquelles on peut créer des conteneurs. Docker à partir desquelles on peut créer des conteneurs.
Si l'on souhaite qu'une modification faite dans un conteneur (par exemple Si l'on souhaite qu'une modification faite dans un conteneur (par exemple
l'installation d'un paquet) s'applique à d'autres conteneurs, il va falloir l'installation d'un paquet) s'applique à d'autres conteneurs, il va falloir

View File

@ -38,12 +38,12 @@ Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
<div lang="en-US"> <div lang="en-US">
``` ```
5.14.2-gentoo 5.14.4-gentoo
``` ```
</div> </div>
Rassurez-vous, même si vous n'avez pas compilé le dernier noyau disponible sur 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. [`kernel.org`](https://www.kernel.org/), Docker s'utilise à partir de Linux 3.10.
## Par le gestionnaire de paquets ## Par le gestionnaire de paquets
@ -73,20 +73,20 @@ pourrez interagir avec lui via votre ligne de commande habituelle.
Téléchargez la version correspondante à votre système d'exploitation : Téléchargez la version correspondante à votre système d'exploitation :
* [Docker for Mac](https://hub.docker.com/editions/community/docker-ce-desktop-mac) * [Docker Desktop 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) * [Docker Desktop for Windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows)
Une fois l'installation terminée, lancez l'application : elle ajoutera une 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 icône dans la zone de notification, vous permettant de contrôler l'exécution de
la machine virtuelle sous-jacente. la machine virtuelle sous-jacente.
Notez qu'à partir de janvier 2022, ces applications passent sous une licence Notez que depuis septembre 2021, ces applications passent sous une licence
payante pour les grosses entreprises[^TODO]. Cela ne concernera nous concerne payante pour les grosses entreprises[^DockerSubscription]. Cela ne nous
pas, car la licence est gratuite pour un usage éducatif ou personnel. Notez que concerne pas, car la licence est gratuite pour un usage éducatif ou
ce n'est pas le binaire Docker qui change de licence, elle reste libre, mais personnel. Notez que ce n'est pas le binaire Docker qui change de licence, elle
seulement les applications Docker Desktop. reste libre, mais seulement les applications Docker Desktop.
[^TODO]: FIXME article de blog concernant docker desktop [^DockerSubscription]: <https://www.docker.com/blog/updating-product-subscriptions/>
## Évaluation en ligne ## Évaluation en ligne
@ -170,4 +170,4 @@ sudo gpasswd -a $USER docker
</div> </div>
**Attention :** cette action n'est pas anodine d'un point de vue sécurité : **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> <https://docs.docker.com/engine/security/#docker-daemon-attack-surface>

View File

@ -7,15 +7,15 @@ Docker est un écosystème d'outils de haut niveau, permettant d'utiliser des
*conteneurs*. *conteneurs*.
Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel
nous interagissons via un client (le programme `docker`). La communication entre vous interagissez 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 le daemon et le client s'effectuant sur une API REST généralement au travers
d'une socket. d'une socket.
Le client peut d'ailleurs ne pas être sur la même machine qui exécutera Le client peut d'ailleurs ne pas être sur la même machine qui exécutera
effectivement les conteneurs. C'est ce qu'il se passe lorsqu'on utilise effectivement les conteneurs.[^dockermachine]
*Docker4Windows* ou *Docker4Mac* : une machine virtuelle Linux est lancée C'est ce qu'il se passe lorsqu'on utilise *Docker4Windows* ou *Docker4Mac* :
parallèlement au système de base et chaque commande `docker` tapée est passée une machine virtuelle Linux est lancée parallèlement au système de base et
au deamon dans la machine virtuelle.[^dockermachine] chaque commande `docker` tapée est passée au deamon dans la machine virtuelle.
[^dockermachine]: Il suffit de modifier la variable d'environnement [^dockermachine]: Il suffit de modifier la variable d'environnement
`DOCKER_HOST` ou de passer le paramètre `-H` suivi de l'URL de la socket à `DOCKER_HOST` ou de passer le paramètre `-H` suivi de l'URL de la socket à
@ -44,6 +44,24 @@ Il y a deux méthodes pour obtenir des images Docker : soit les construire avec
les outils fournis, soit les récupérer depuis un registre. les outils fournis, soit les récupérer depuis un registre.
## Les registres Docker (*Docker registries*)
Les registres sont des plates-formes de stockage, publiques ou privées,
contenant des images. Ils permettent de récupérer des images, mais également
d'en envoyer.
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/search),
et les dépôts de sources tels que
[GitHub](https://github.blog/2020-09-01-introducing-github-container-registry/)
et [GitLab](https://docs.gitlab.com/ee/user/packages/container_registry/) le
proposent également.
## Les conteneurs Docker ## Les conteneurs Docker
Alors que les images constituent la partie immuable de Docker, les conteneurs Alors que les images constituent la partie immuable de Docker, les conteneurs
@ -58,19 +76,3 @@ Chaque conteneur s'exécute dans un environnement restreint et distinct de
l'environnement principal (où vous avez votre bureau). Par exemple, dans cet l'environnement principal (où vous avez votre bureau). Par exemple, dans cet
environnement, vous ne pouvez pas voir les processus qui sont situés en dehors, environnement, vous ne pouvez pas voir les processus qui sont situés en dehors,
ni accéder aux fichiers extérieurs. ni accéder aux fichiers extérieurs.
## Les registres Docker (*Docker registries*)
Les registres sont des plates-formes de stockage, publiques ou privées,
contenant des images. Ils permettent de récupérer des images, mais également
d'en envoyer.
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.