tuto1 ready for 2022
This commit is contained in:
parent
af860b40a0
commit
d8d9365a4b
Binary file not shown.
@ -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.
|
||||
|
||||
|
||||
|
@ -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 à
|
||||
|
@ -11,7 +11,7 @@ contiendra les paramètres d'exécution.
|
||||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
version: "3.8"
|
||||
version: "3.9"
|
||||
services:
|
||||
influxdb:
|
||||
...
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user