Update 2018
This commit is contained in:
parent
07d7a79529
commit
3318c044f4
7 changed files with 46 additions and 51 deletions
|
@ -16,7 +16,7 @@ l'option `--rm`.
|
||||||
|
|
||||||
## Conteneurs
|
## Conteneurs
|
||||||
|
|
||||||
Vous pouvez afficher l'ensemble des conteneurs, quelque soit leur état (en
|
Nous pouvons afficher l'ensemble des conteneurs, quelque soit leur état (en
|
||||||
cours d'exécution, arrêtés, ...) avec la commande suivante :
|
cours d'exécution, arrêtés, ...) avec la commande suivante :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
|
|
|
@ -6,10 +6,11 @@ Projet et rendu
|
||||||
## Projet
|
## Projet
|
||||||
|
|
||||||
Écrivez un script `mycloud-run.sh` pour automatiser le lancement de votre
|
Écrivez un script `mycloud-run.sh` pour automatiser le lancement de votre
|
||||||
instance personnelle d'`owncloud`. Une attention particulière devra être
|
instance personnelle [`nextcloud`](https://hub.docker.com/_/nextcloud/) ou
|
||||||
apportée à la manière dont vous gérerez le rappel du script pour éventuellement
|
d'[`owncloud`](https://hub.docker.com/r/owncloud/server/). Une attention
|
||||||
relancer un conteneur qui se serait arrêté (évidemment sans perdre les
|
particulière devra être apportée à la manière dont vous gérerez le rappel du
|
||||||
données).
|
script pour éventuellement relancer un conteneur qui se serait arrêté
|
||||||
|
(évidemment sans perdre les données).
|
||||||
|
|
||||||
À la fin de son exécution, le script affichera un lien utilisable sur l'hôte
|
À la fin de son exécution, le script affichera un lien utilisable sur l'hôte
|
||||||
pour se rendre sur la page de connexion. Une autre machine de votre réseau
|
pour se rendre sur la page de connexion. Une autre machine de votre réseau
|
||||||
|
@ -34,6 +35,20 @@ l'hôte par exemple, etc.) et la plus respectueuse des bonnes pratiques que l'on
|
||||||
a pu voir durant ce premier cours.
|
a pu voir durant ce premier cours.
|
||||||
|
|
||||||
|
|
||||||
|
### Exemple d'exécution
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
|
```
|
||||||
|
42sh$ ./mycloud-run.sh
|
||||||
|
http://localhost:12345/
|
||||||
|
42sh$ #docker kill db
|
||||||
|
42sh$ ./mycloud-run.sh # le script relancera une base de données,
|
||||||
|
# sans avoir perdu les données
|
||||||
|
http://localhost:12345/
|
||||||
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
## Modalité de rendu
|
## Modalité de rendu
|
||||||
|
|
||||||
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
||||||
|
@ -46,7 +61,7 @@ envoyé à une autre adresse et/ou non signé et/ou reçu après la correction n
|
||||||
sera pas pris en compte.
|
sera pas pris en compte.
|
||||||
|
|
||||||
Par ailleurs, n'oubliez pas de répondre à
|
Par ailleurs, n'oubliez pas de répondre à
|
||||||
[l'évaluation du cours](https://www.epitaf.fr/moodle/mod/quiz/view.php?id=20).
|
[l'évaluation du cours](https://www.epitaf.fr/moodle/mod/quiz/view.php?id=213).
|
||||||
|
|
||||||
|
|
||||||
## Tarball
|
## Tarball
|
||||||
|
@ -58,11 +73,8 @@ Voici une arborescence type:
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
login_x-TP1/webserver
|
login_x-TP1/
|
||||||
login_x-TP1/webserver/Dockerfile
|
login_x-TP1/mycloud-run.sh
|
||||||
login_x-TP1/webserver/index.html
|
|
||||||
login_x-TP1/mycloud
|
|
||||||
login_x-TP1/mycloud/mycloud-run.sh
|
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -3,15 +3,15 @@ title: Virtualisation légère -- TP n^o^ 1
|
||||||
subtitle: Les bases de Docker
|
subtitle: Les bases de Docker
|
||||||
author: Pierre-Olivier *Nemunaire* Mercier
|
author: Pierre-Olivier *Nemunaire* Mercier
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Jeudi 5 octobre 2017
|
date: Jeudi 4 octobre 2018
|
||||||
...
|
...
|
||||||
|
|
||||||
Durant ce premier TP, nous allons apprendre à utiliser Docker !
|
Durant ce premier TP, nous allons apprendre à utiliser Docker !
|
||||||
|
|
||||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
Le TP se termine par un petit projet à rendre à <virli@nemunai.re> au plus tard
|
||||||
<virli@nemunai.re> au plus tard le jeudi 19 octobre 2017 à 8 h 42. Consultez la
|
le jeudi 18 octobre 2018 à 8 h 42, des questions de cours sont également à
|
||||||
dernière section de chaque partie pour plus d'information sur les éléments à
|
compléter avant cette date sur Epitaf. Consultez la dernière partie de ce TP
|
||||||
rendre.
|
pour les modalités.
|
||||||
|
|
||||||
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 à
|
||||||
|
|
|
@ -20,30 +20,21 @@ 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_HOST` ou de passer le paramètre `-H` suivi de l'URL de la socket à
|
||||||
`docker`. Voir aussi : <https://docs.docker.com/machine/overview/>
|
`docker`. Voir aussi : <https://docs.docker.com/machine/overview/>
|
||||||
|
|
||||||
## `runc` et `containerd`
|
|
||||||
|
|
||||||
La notion de conteneurs est maintenant normalisée par
|
|
||||||
[l'Open Container Initiative](https://opencontainers.org).
|
|
||||||
|
|
||||||
Docker lance des conteneurs respectant cette norme grâce au programme `runc`.
|
|
||||||
|
|
||||||
Toute la gestion de l'exécution du conteneur est déléguée au programme
|
|
||||||
`containerd`, également issu de l'initiative. Lui aussi est un daemon (géré
|
|
||||||
par Docker), dont le but est de monitorer les conteneurs lancés (pour les
|
|
||||||
relancer en cas de crash par exemple) ou encore de récupérer les logs de chaque
|
|
||||||
conteneur.
|
|
||||||
|
|
||||||
|
|
||||||
## Les images Docker
|
## Les images Docker
|
||||||
|
|
||||||
Une image Docker est un système de fichiers en lecture seule. Elle est formée
|
Une image Docker est un système de fichiers en lecture seule. Elle est formée
|
||||||
d'un ensemble de couches, agrégées selon le principe d'UnionFS.
|
d'un ensemble de couches, agrégées selon le principe d'UnionFS.
|
||||||
|
|
||||||
Une image peut, par exemple, être un système Ubuntu complet ou juste contenir
|
Une image peut, par exemple, contenir :
|
||||||
le programme `busybox` ou encore un serveur web et votre application web, prêts
|
|
||||||
à l'emploi.
|
|
||||||
|
|
||||||
Les images sont utilisées pour créer des conteneurs.
|
* un système Ubuntu complet,
|
||||||
|
* le programme `busybox`,
|
||||||
|
* un serveur web et votre application web, prêts à l'emploi,
|
||||||
|
* ...
|
||||||
|
|
||||||
|
Les images sont utilisées comme modèle qui sera dupliqué lorsque l'on
|
||||||
|
démarre un nouveau conteneur.
|
||||||
|
|
||||||
Il y a deux méthodes pour obtenir des images Docker : soit les construire avec
|
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.
|
||||||
|
@ -70,5 +61,7 @@ contenant des images. Ils permettent de récupérer des images, mais également
|
||||||
d'en envoyer.
|
d'en envoyer.
|
||||||
|
|
||||||
Le registre utilisé de base est le [Docker Store](https://store.docker.com/) :
|
Le registre utilisé de base est le [Docker Store](https://store.docker.com/) :
|
||||||
il contient à la fois des images officielles (ubuntu, debian, nginx, ...) et
|
il contient à la fois des images officielles (ubuntu, debian, nginx, ...), des
|
||||||
des images créées par des utilisateurs.
|
images créées par des utilisateurs ([Docker Hub](https://hub.docker.com/)),
|
||||||
|
mais aussi des images de grands éditeurs, payantes, à destination des
|
||||||
|
entreprises.
|
||||||
|
|
|
@ -58,7 +58,7 @@ télécharger le paquet mis à disposition puis à l'installer via `dpkg -i`.
|
||||||
|
|
||||||
[^debrepos]: Le projet met à disposition des dépôts, si vous préférez cette
|
[^debrepos]: Le projet met à disposition des dépôts, si vous préférez cette
|
||||||
méthode, consultez la
|
méthode, consultez la
|
||||||
[documentation d'installation](https://docs.influxdata.com/influxdb/v1.3/introduction/installation/#ubuntu-debian).
|
[documentation d'installation](https://docs.influxdata.com/influxdb/v1.6/introduction/installation/#ubuntu-debian).
|
||||||
|
|
||||||
Deux solutions s'offrent à nous :
|
Deux solutions s'offrent à nous :
|
||||||
|
|
||||||
|
@ -95,14 +95,14 @@ relevées.
|
||||||
Vous pouvez monitorer les métriques de n'importe quelle machine, simplement en
|
Vous pouvez monitorer les métriques de n'importe quelle machine, simplement en
|
||||||
installant `telegraf` et en lui indiquant l'emplacement de son serveur
|
installant `telegraf` et en lui indiquant l'emplacement de son serveur
|
||||||
InfluxDB. Nous allons installer `telegraf` sur notre machine à l'aide de la
|
InfluxDB. Nous allons installer `telegraf` sur notre machine à l'aide de la
|
||||||
[documentation](https://docs.influxdata.com/telegraf/v1.0/introduction/installation/).
|
[documentation](https://docs.influxdata.com/telegraf/v1.8/introduction/installation/).
|
||||||
|
|
||||||
Ces quelques lignes devraient suffir à lancer la collecte, à condition que
|
Ces quelques lignes devraient suffir à lancer la collecte, à condition que
|
||||||
votre InfluxDB écoute sur le port 8086 local :
|
votre InfluxDB écoute sur le port 8086 local :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```bash
|
```bash
|
||||||
TELEGRAF_VERSION=1.0.0
|
TELEGRAF_VERSION=1.8.0
|
||||||
wget https://dl.influxdata.com/telegraf/releases/telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
|
wget https://dl.influxdata.com/telegraf/releases/telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
|
||||||
tar xf telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
|
tar xf telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
|
||||||
TELEGRAF_CONFIG_PATH=./telegraf/etc/telegraf/telegraf.conf ./telegraf/usr/bin/telegraf
|
TELEGRAF_CONFIG_PATH=./telegraf/etc/telegraf/telegraf.conf ./telegraf/usr/bin/telegraf
|
||||||
|
@ -127,15 +127,5 @@ Laissons tourner `telegraf` afin de constituer un petit historique de valeurs.
|
||||||
|
|
||||||
## Rendu
|
## Rendu
|
||||||
|
|
||||||
### Questions
|
|
||||||
|
|
||||||
1. Dans quel langage est écrit `telegraf` ?
|
|
||||||
|
|
||||||
1. Quelle(s) particularité(s) de ce langage permet de se passer de la variable
|
|
||||||
`LD_LIBRARY_PATH` au lancement de `telegraf`, alors qu'on ne l'a pas
|
|
||||||
installé ?
|
|
||||||
|
|
||||||
### Éléments à rendre
|
|
||||||
|
|
||||||
Avant de passer à la suite, placez votre `Dockerfile` et les éventuels fichiers
|
Avant de passer à la suite, placez votre `Dockerfile` et les éventuels fichiers
|
||||||
annexes dans un dossier `influxdb`.
|
annexes dans un dossier `influxdb`.
|
||||||
|
|
|
@ -20,7 +20,7 @@ Commençons par compléter la commande d'installation existante pour `influxdb`,
|
||||||
afin d'installer simultanément `chronograf`.
|
afin d'installer simultanément `chronograf`.
|
||||||
|
|
||||||
La documentation de la procédure est disponible
|
La documentation de la procédure est disponible
|
||||||
[à cette adresse](https://docs.influxdata.com/chronograf/v1.0/introduction/installation/).
|
[à cette adresse](https://docs.influxdata.com/chronograf/v1.6/introduction/installation/).
|
||||||
|
|
||||||
|
|
||||||
## Script d'init
|
## Script d'init
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
title: Virtualisation légère -- TP n^o^ 3
|
title: Virtualisation légère -- TP n^o^ 2
|
||||||
subtitle: Construire des images Docker
|
subtitle: Construire des images Docker
|
||||||
author: Pierre-Olivier *Nemunaire* Mercier
|
author: Pierre-Olivier *Nemunaire* Mercier
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Jeudi 11 octobre 2018
|
date: Jeudi 11 octobre 2018
|
||||||
...
|
...
|
||||||
|
|
||||||
Durant ce troisième TP, nous allons voir comment créer nos propres images !
|
Durant ce deuxième TP, nous allons voir comment créer nos propres images !
|
||||||
|
|
||||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||||
<virli@nemunai.re> au plus tard le jeudi 18 octobre 2018 à 8 h 42. Consultez la
|
<virli@nemunai.re> au plus tard le jeudi 18 octobre 2018 à 8 h 42. Consultez la
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue