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
|
||||
|
||||
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 :
|
||||
|
||||
<div lang="en-US">
|
||||
|
|
|
@ -6,10 +6,11 @@ Projet et rendu
|
|||
## Projet
|
||||
|
||||
Écrivez un script `mycloud-run.sh` pour automatiser le lancement de votre
|
||||
instance personnelle d'`owncloud`. Une attention particulière devra être
|
||||
apportée à la manière dont vous gérerez le rappel du script pour éventuellement
|
||||
relancer un conteneur qui se serait arrêté (évidemment sans perdre les
|
||||
données).
|
||||
instance personnelle [`nextcloud`](https://hub.docker.com/_/nextcloud/) ou
|
||||
d'[`owncloud`](https://hub.docker.com/r/owncloud/server/). Une attention
|
||||
particulière devra être apportée à la manière dont vous gérerez le rappel du
|
||||
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
|
||||
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.
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
@ -58,11 +73,8 @@ Voici une arborescence type:
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
login_x-TP1/webserver
|
||||
login_x-TP1/webserver/Dockerfile
|
||||
login_x-TP1/webserver/index.html
|
||||
login_x-TP1/mycloud
|
||||
login_x-TP1/mycloud/mycloud-run.sh
|
||||
login_x-TP1/
|
||||
login_x-TP1/mycloud-run.sh
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -3,15 +3,15 @@ title: Virtualisation légère -- TP n^o^ 1
|
|||
subtitle: Les bases de Docker
|
||||
author: Pierre-Olivier *Nemunaire* Mercier
|
||||
institute: EPITA
|
||||
date: Jeudi 5 octobre 2017
|
||||
date: Jeudi 4 octobre 2018
|
||||
...
|
||||
|
||||
Durant ce premier TP, nous allons apprendre à utiliser Docker !
|
||||
|
||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||
<virli@nemunai.re> au plus tard le jeudi 19 octobre 2017 à 8 h 42. Consultez la
|
||||
dernière section de chaque partie pour plus d'information sur les éléments à
|
||||
rendre.
|
||||
Le TP se termine par un petit projet à rendre à <virli@nemunai.re> au plus tard
|
||||
le jeudi 18 octobre 2018 à 8 h 42, des questions de cours sont également à
|
||||
compléter avant cette date sur Epitaf. Consultez la dernière partie de ce TP
|
||||
pour les modalités.
|
||||
|
||||
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 à
|
||||
|
|
|
@ -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`. 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
|
||||
|
||||
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.
|
||||
|
||||
Une image peut, par exemple, être un système Ubuntu complet ou juste contenir
|
||||
le programme `busybox` ou encore un serveur web et votre application web, prêts
|
||||
à l'emploi.
|
||||
Une image peut, par exemple, contenir :
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
Le registre utilisé de base est le [Docker Store](https://store.docker.com/) :
|
||||
il contient à la fois des images officielles (ubuntu, debian, nginx, ...) et
|
||||
des images créées par des utilisateurs.
|
||||
il contient à la fois des images officielles (ubuntu, debian, nginx, ...), des
|
||||
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
|
||||
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 :
|
||||
|
||||
|
@ -95,14 +95,14 @@ relevées.
|
|||
Vous pouvez monitorer les métriques de n'importe quelle machine, simplement en
|
||||
installant `telegraf` et en lui indiquant l'emplacement de son serveur
|
||||
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
|
||||
votre InfluxDB écoute sur le port 8086 local :
|
||||
|
||||
<div lang="en-US">
|
||||
```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
|
||||
tar xf telegraf-${TELEGRAF_VERSION}_linux_amd64.tar.gz
|
||||
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
|
||||
|
||||
### 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
|
||||
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`.
|
||||
|
||||
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
|
||||
|
|
|
@ -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
|
||||
author: Pierre-Olivier *Nemunaire* Mercier
|
||||
institute: EPITA
|
||||
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 à
|
||||
<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