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
|
### 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.
|
||||||
|
|
||||||
|
|
||||||
|
@ -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 à
|
||||||
|
@ -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:
|
||||||
...
|
...
|
||||||
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
|||||||
|
|
||||||
{ width=85% }
|
{ 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
|
||||||
|
@ -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>
|
||||||
|
@ -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.
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user