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
[Enigmail](https://enigmail.net) est une extension très bien réputée pour
signer ses mails depuis Thunderbird.
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
solutions sont disponibles.
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
@ -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
trouver. Uploadez votre clef sur [un serveur de
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.

View File

@ -11,10 +11,10 @@ abstract: |
\vspace{1em}
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
é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,
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">
```yaml
version: "3.8"
version: "3.9"
services:
influxdb:
...

View File

@ -46,10 +46,9 @@ le client fourni :
<div lang="en-US">
```
42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \
influxdb -host influxdb
Connected to http://influxdb:8086 version 1.8.2
InfluxDB shell version: 1.8.2
42sh$ docker container run --rm -it --link mytsdb:influxdb influxdb:1.8 influx -host influxdb
Connected to http://influxdb:8086 version 1.8.9
InfluxDB shell version: 1.8.9
> show databases
name: databases
name
@ -85,7 +84,7 @@ système. Pour cela, on commence par télécharger *Telegraf* :
<div lang="en-US">
```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
```
</div>
@ -110,7 +109,7 @@ Et observons ensuite :
```bash
42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \
influxdb -host influxdb
InfluxDB shell version: 1.8.2
InfluxDB shell version: 1.8.9
> show databases
name: databases
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
ê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
l'écosystème Docker, presque indispensable !
[^fig]: Le site du projet initial est toujours en ligne :
<https://www.fig.sh/>.
une équipe indépendante. Il constitue aujourd'hui une brique de l'écosystème
Docker, presque indispensable !
### 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">
```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
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">
```
42sh$ docker-compose --version
docker-compose version: 1.27.2
docker-compose version: 1.29.2
```
</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.
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.

View File

@ -68,16 +68,41 @@ docker image ls
</div>
### Tag
### *Image ID*, nom, tag
Vous devriez constater la présence de plusieurs images « Ubuntu », mais chacune
a un *TAG* différent. En effet, souvent, il existe plusieurs versions d'une même
image. Pour Ubuntu par exemple, nous avons la possibilité de lancer la version
`trusty`, `xenial`, `zesty` ou `artful`.
Chaque image est identifiable par son *Image ID* : il s'agit d'un long
identifiant unique. Chaque modification qui est apportée à l'image
générera un *Image ID* différent. Un peu comme un identifiant de
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
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% }
Dans ce schéma, on considère les images comme étant la partie figée de Docker à
partir desquelles on peut créer des conteneurs.
Dans le schéma ci-après, on considère les images comme étant la partie figée de
Docker à partir desquelles on peut créer des conteneurs.
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

View File

@ -38,12 +38,12 @@ Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
<div lang="en-US">
```
5.14.2-gentoo
5.14.4-gentoo
```
</div>
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
@ -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 :
* [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)
* [Docker Desktop for Mac](https://hub.docker.com/editions/community/docker-ce-desktop-mac)
* [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
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.
Notez que depuis septembre 2021, ces applications passent sous une licence
payante pour les grosses entreprises[^DockerSubscription]. Cela ne 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
[^DockerSubscription]: <https://www.docker.com/blog/updating-product-subscriptions/>
## Évaluation en ligne
@ -170,4 +170,4 @@ sudo gpasswd -a $USER docker
</div>
**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*.
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
d'une socket.
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
*Docker4Windows* ou *Docker4Mac* : une machine virtuelle Linux est lancée
parallèlement au système de base et chaque commande `docker` tapée est passée
au deamon dans la machine virtuelle.[^dockermachine]
effectivement les conteneurs.[^dockermachine]
C'est ce qu'il se passe lorsqu'on utilise *Docker4Windows* ou *Docker4Mac* :
une machine virtuelle Linux est lancée parallèlement au système de base et
chaque commande `docker` tapée est passée au deamon dans la machine virtuelle.
[^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 à
@ -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 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
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
environnement, vous ne pouvez pas voir les processus qui sont situés en dehors,
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.