Split docker-orchestration into docker-advanced and docker-orchestration
This commit is contained in:
parent
9dcd2da076
commit
4e107e631d
25
tutorial/docker-advanced/Makefile
Normal file
25
tutorial/docker-advanced/Makefile
Normal file
|
@ -0,0 +1,25 @@
|
|||
SOURCES = tutorial.md setup.md what.md manual.md compose.md rendu.md
|
||||
PANDOCOPTS = --latex-engine=xelatex \
|
||||
--standalone \
|
||||
--normalize \
|
||||
--number-sections \
|
||||
--smart \
|
||||
-M lang=fr-FR \
|
||||
-M fontsize=12pt \
|
||||
-M papersize=a4paper \
|
||||
-M mainfont="Linux Libertine O" \
|
||||
-M monofont="FantasqueSansMono-Regular" \
|
||||
-M sansfont="Linux Biolinum O" \
|
||||
-M colorlinks=true \
|
||||
-M linkcolor="black" \
|
||||
-M urlcolor="[rgb]{0.2,0.6,0.4}" \
|
||||
--include-in-header=../header.tex
|
||||
|
||||
|
||||
all: tutorial.pdf
|
||||
|
||||
tutorial.pdf: ${SOURCES}
|
||||
pandoc ${PANDOCOPTS} -o $@ $+
|
||||
|
||||
clean::
|
||||
rm tutorial.pdf
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
|
@ -12,19 +12,19 @@ construction).
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
influxdb:
|
||||
...
|
||||
chronograf:
|
||||
build: grafana/
|
||||
image: nginx
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- ./:/tmp/toto
|
||||
links:
|
||||
- influxdb
|
||||
version: '3'
|
||||
services:
|
||||
influxdb:
|
||||
...
|
||||
chronograf:
|
||||
build: grafana/
|
||||
image: nginx
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- ./:/tmp/toto
|
||||
links:
|
||||
- influxdb
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -61,9 +61,9 @@ suit :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
volumes:
|
||||
mysql-data:
|
||||
driver: local
|
||||
volumes:
|
||||
mysql-data:
|
||||
driver: local
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -72,11 +72,11 @@ l'emplacement à partager :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
[...]
|
||||
mysql:
|
||||
[...]
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
mysql:
|
||||
[...]
|
||||
volumes:
|
||||
- mysql-data:/var/lib/mysql
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -94,9 +94,9 @@ qui pourront être utilisés par les `services`. On pourrait donc avoir :
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
networks:
|
||||
knotdns-slave-net:
|
||||
driver: bridge
|
||||
networks:
|
||||
knotdns-slave-net:
|
||||
driver: bridge
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -146,7 +146,7 @@ le résultat :
|
|||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker-compose up
|
||||
docker-compose up
|
||||
```
|
||||
</div>
|
||||
|
|
@ -26,7 +26,7 @@ allons tâcher d'utiliser ce même port pour tester localement :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
docker container run -p 8086:8086 -d --name mytsdb influxdb
|
||||
docker container run -p 8086:8086 -d --name mytsdb influxdb
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -35,9 +35,9 @@ notre base de données en appelant :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ curl -f http://localhost:8086/ping
|
||||
42sh$ echo $?
|
||||
0
|
||||
42sh$ curl -f http://localhost:8086/ping
|
||||
42sh$ echo $?
|
||||
0
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -46,16 +46,15 @@ le client fourni :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ docker container run --rm -it --link mytsdb:influxdb \
|
||||
--entrypoint "/usr/bin/influx" influxdb -host influxdb
|
||||
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
|
||||
Connected to http://influxdb:8086 version 1.0.1
|
||||
InfluxDB shell version: 1.0.1
|
||||
> show databases
|
||||
name: databases
|
||||
---------------
|
||||
name
|
||||
_internal
|
||||
42sh$ docker container run --rm -it --link mytsdb:influxdb \
|
||||
--entrypoint "/usr/bin/influx" influxdb -host influxdb
|
||||
Connected to http://influxdb:8086 version 1.6.3
|
||||
InfluxDB shell version: 1.6.3
|
||||
> show databases
|
||||
name: databases
|
||||
name
|
||||
---------------
|
||||
_internal
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -68,7 +67,7 @@ faut utiliser la commande `docker container logs` :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
docker container logs mytsdb
|
||||
docker container logs mytsdb
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -86,7 +85,7 @@ système. Pour cela, on commence par télécharger *Telegraf* :
|
|||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
curl https://dl.influxdata.com/telegraf/releases/telegraf-1.4.2-static_linux_amd64.tar.gz | \
|
||||
curl https://dl.influxdata.com/telegraf/releases/telegraf-1.8.1-static_linux_amd64.tar.gz | \
|
||||
tar xzv -C /tmp
|
||||
```
|
||||
</div>
|
||||
|
@ -95,48 +94,46 @@ Puis, lançons *Telegraf* :
|
|||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
cd /tmp/telegraf
|
||||
./telegraf --config telegraf.conf
|
||||
cd /tmp/telegraf
|
||||
./telegraf --config telegraf.conf
|
||||
```
|
||||
</div>
|
||||
|
||||
**Remarque :** La configuration par défaut va collecter les données de la
|
||||
machine locale et les envoyer sur le serveur situé à
|
||||
`http://localhost:8086`. Ici, cela fonctionne donc parce que l'on a fait en
|
||||
sorte de redirigé le port de notre conteneur sur notre machine locale (option
|
||||
`-p`).
|
||||
`http://localhost:8086`. Ici, cela fonctionne parce que l'on a fait en sorte de
|
||||
rediriger le port de notre conteneur sur notre machine locale (option `-p`).
|
||||
|
||||
Et observons ensuite :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ docker container run --rm -it --link mytsdb:influxdb \
|
||||
--entrypoint "/usr/bin/influx" influxdb -host influxdb
|
||||
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
|
||||
Connected to http://influxdb:8086 version 1.0.1
|
||||
InfluxDB shell version: 1.0.1
|
||||
> show databases
|
||||
name: databases
|
||||
---------------
|
||||
name
|
||||
_internal
|
||||
telegraf
|
||||
42sh$ docker container run --rm -it --link mytsdb:influxdb \
|
||||
--entrypoint "/usr/bin/influx" influxdb -host influxdb
|
||||
Connected to http://influxdb:8086 version 1.6.3
|
||||
InfluxDB shell version: 1.6.3
|
||||
> show databases
|
||||
name: databases
|
||||
name
|
||||
---------------
|
||||
_internal
|
||||
telegraf
|
||||
|
||||
> use telegraf
|
||||
Using database telegraf
|
||||
> use telegraf
|
||||
Using database telegraf
|
||||
|
||||
> show measurements
|
||||
name: measurements
|
||||
------------------
|
||||
name
|
||||
cpu
|
||||
disk
|
||||
diskio
|
||||
kernel
|
||||
mem
|
||||
processes
|
||||
swap
|
||||
system
|
||||
> show measurements
|
||||
name: measurements
|
||||
name
|
||||
------------------
|
||||
cpu
|
||||
disk
|
||||
diskio
|
||||
kernel
|
||||
mem
|
||||
processes
|
||||
swap
|
||||
system
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -151,9 +148,8 @@ lancé, celui-ci va régulièrement envoyer des métriques de cette machine.
|
|||
|
||||
L'interface de *Chronograf* est disponible sur le port 8888.
|
||||
|
||||
L'image Docker officielle accepte que l'emplacement du serveur InfluxDB soit
|
||||
passée dans variable d'environnement
|
||||
`INFLUXDB_URL`. [Consultez la documentation du conteneur si besoin](https://store.docker.com/images/chronograf).
|
||||
Consultez la [documentation du conteneur](https://hub.docker.com/_/chronograf)
|
||||
si besoin.
|
||||
|
||||
|
||||
![Résultat obtenu](chronograf_latest.png)
|
34
tutorial/docker-advanced/rendu.md
Normal file
34
tutorial/docker-advanced/rendu.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
Modalités de rendu
|
||||
------------------
|
||||
|
||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP.
|
||||
|
||||
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
||||
vérifications élémentaires et de vous envoyer un accusé de réception (ou de
|
||||
rejet).
|
||||
|
||||
Ce service écoute sur l'adresse <virli@nemunai.re>, c'est donc à cette adresse
|
||||
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
||||
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
||||
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=33).
|
||||
|
||||
|
||||
Tarball
|
||||
-------
|
||||
|
||||
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
|
||||
placer dans une tarball (pas d'archive ZIP, RAR, ...).
|
||||
|
||||
Voici une arborescence type (vous pourriez avoir des fichiers supplémentaires,
|
||||
cela dépendra de votre avancée dans le projet) :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
login_x-TP2/tp/docker-compose.yml
|
||||
login_x-TP2/tp/mymonitoring-stack.yml
|
||||
```
|
||||
</div>
|
70
tutorial/docker-advanced/setup.md
Normal file
70
tutorial/docker-advanced/setup.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
\newpage
|
||||
|
||||
Mise en place
|
||||
=============
|
||||
|
||||
Durant le premier TP, nous avons installé l'environnement Docker principal, qui
|
||||
inclut le client, le daemon et toute sa machinerie. Mais le projet Docker
|
||||
propose de nombreuses autres ressources, souvent directement trouvée dans les
|
||||
usages de la communauté, et parfois même approprié par Docker.
|
||||
|
||||
|
||||
## `docker-compose`
|
||||
|
||||
Pour ce TP, nous allons également 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/>.
|
||||
|
||||
### Par le gestionnaire de paquets
|
||||
|
||||
Les distributions à jour vous proposeront un paquet `docker-compose` qui
|
||||
fonctionnera avec la version de Docker qu'ils fournissent.
|
||||
|
||||
### Par la distribution binaire
|
||||
|
||||
L'équipe en charge de Docker compose met à disposition un exécutable contenant
|
||||
tous les scripts. Nous pouvons l'installer en suivant la procédure suivante :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-Linux-x86_64 \
|
||||
> /usr/bin/docker-compose
|
||||
chmod +x /usr/bin/docker-compose
|
||||
```
|
||||
</div>
|
||||
|
||||
### `pip`
|
||||
|
||||
Le projet étant écrit en Python, il est également disponible via `pip`, si vous
|
||||
préférez cette méthode. N'oubliez pas de préciser une version compatible avec
|
||||
votre version de Docker.
|
||||
|
||||
|
||||
### Vérification du fonctionnement
|
||||
|
||||
Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
|
||||
`docker-compose` en exécutant la commande :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ docker-compose --version
|
||||
docker-compose version: 1.16.1
|
||||
```
|
||||
</div>
|
||||
|
||||
Si vous obtenez une réponse similaire, c'est que vous êtes prêt à commencer le
|
||||
TP ! Alors n'attendons pas, partons à l'aventure !
|
||||
|
||||
|
||||
## Play With Docker
|
||||
|
||||
Tout comme pour le TP précédent, si vous avez des difficultés pour réaliser les
|
||||
exercices sur vos machines, vous pouvez utiliser le projet
|
||||
[Play With Docker](https://play-with-docker.com/) qui vous donnera accès à un
|
||||
bac à sable avec lequel vous pourrez réaliser tous les exercices de ce TP.
|
22
tutorial/docker-advanced/tutorial.md
Normal file
22
tutorial/docker-advanced/tutorial.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
title: Virtualisation légère -- TP n^o^ 2.2
|
||||
subtitle: Aller plus loin avec Docker
|
||||
author: Pierre-Olivier *Nemunaire* Mercier
|
||||
institute: EPITA
|
||||
date: Jeudi 18 octobre 2017
|
||||
...
|
||||
|
||||
Dans cette deuxième partie du TP, nous allons approfondir l'utilisation de Docker !
|
||||
|
||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||
<virli@nemunai.re> au plus tard le mercredi 24 octobre 2017 à 0 h 42. Consultez la
|
||||
dernière section de chaque partie pour plus d'information sur les éléments à
|
||||
rendre.
|
||||
|
||||
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 à
|
||||
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) faire
|
||||
signer votre clef et n'hésitez pas à
|
||||
[faire signer votre clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
||||
|
||||
\tableofcontents
|
|
@ -1,4 +1,4 @@
|
|||
SOURCES = tutorial.md setup.md what.md manual.md compose.md machine.md swarm.md stack.md rendu.md
|
||||
SOURCES = tutorial.md setup.md machine.md swarm.md stack.md rendu.md
|
||||
PANDOCOPTS = --latex-engine=xelatex \
|
||||
--standalone \
|
||||
--normalize \
|
||||
|
|
|
@ -28,12 +28,7 @@ cela dépendra de votre avancée dans le projet) :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
login_x-TP2/tp/docker-compose.yml
|
||||
login_x-TP2/tp/mymonitoring-stack.yml
|
||||
login_x-TP2/fic-server
|
||||
login_x-TP2/fic-server/fic-server.yml
|
||||
login_x-TP2/fic-server/Dockerfile-admin
|
||||
login_x-TP2/fic-server/Dockerfile-backend
|
||||
login_x-TP2/fic-server/Dockerfile-frontend
|
||||
login_x-TP2/tp/docker-compose.yml
|
||||
login_x-TP2/tp/mymonitoring-stack.yml
|
||||
```
|
||||
</div>
|
||||
|
|
|
@ -3,11 +3,6 @@
|
|||
Mise en place
|
||||
=============
|
||||
|
||||
Durant le premier TP, nous avons installé l'environnement Docker principal, qui
|
||||
inclut le client, le daemon et toute sa machinerie. Mais le projet Docker
|
||||
propose de nombreuses autres ressources, souvent directement trouvée dans les
|
||||
usages de la communauté, et parfois même approprié par Docker.
|
||||
|
||||
|
||||
## `docker-machine`
|
||||
|
||||
|
@ -33,9 +28,9 @@ procédure suivante :
|
|||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
curl -L https://github.com/docker/machine/releases/download/v0.12.2/docker-machine-Linux-x86_64 \
|
||||
> /usr/bin/docker-machine
|
||||
chmod +x /usr/bin/docker-machine
|
||||
curl -L https://github.com/docker/machine/releases/download/v0.15.0/docker-machine-Linux-x86_64 \
|
||||
> /usr/bin/docker-machine
|
||||
chmod +x /usr/bin/docker-machine
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -64,65 +59,12 @@ Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ docker-machine version
|
||||
docker-machine version 0.12.2, build 9371605
|
||||
42sh$ docker-machine version
|
||||
docker-machine version 0.12.2, build 9371605
|
||||
```
|
||||
</div>
|
||||
|
||||
|
||||
## `docker-compose`
|
||||
|
||||
Pour ce TP, nous allons également 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/>.
|
||||
|
||||
### Par le gestionnaire de paquets
|
||||
|
||||
Les distributions à jour vous proposeront un paquet `docker-compose` qui
|
||||
fonctionnera avec la version de Docker qu'ils fournissent.
|
||||
|
||||
### Par la distribution binaire
|
||||
|
||||
L'équipe en charge de Docker compose met à disposition un exécutable contenant
|
||||
tous les scripts. Nous pouvons l'installer en suivant la procédure suivante :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-Linux-x86_64 \
|
||||
> /usr/bin/docker-compose
|
||||
chmod +x /usr/bin/docker-compose
|
||||
```
|
||||
</div>
|
||||
|
||||
### `pip`
|
||||
|
||||
Le projet étant écrit en Python, il est également disponible via `pip`, si vous
|
||||
préférez cette méthode. N'oubliez pas de préciser une version compatible avec
|
||||
votre version de Docker.
|
||||
|
||||
|
||||
### Vérification du fonctionnement
|
||||
|
||||
Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
|
||||
`docker-compose` en exécutant la commande :
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ docker-compose --version
|
||||
docker-compose version: 1.16.1
|
||||
```
|
||||
</div>
|
||||
|
||||
Si vous obtenez une réponse similaire, c'est que vous êtes prêt à commencer le
|
||||
TP ! Alors n'attendons pas, partons à l'aventure !
|
||||
|
||||
|
||||
## Play With Docker
|
||||
|
||||
Tout comme pour le TP précédent, si vous avez des difficultés pour réaliser les
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
---
|
||||
title: Virtualisation légère -- TP n^o^ 2
|
||||
subtitle: Aller plus loin avec Docker
|
||||
title: Virtualisation légère -- TP n^o^ 2.3
|
||||
subtitle: L'orchestration avec Docker
|
||||
author: Pierre-Olivier *Nemunaire* Mercier
|
||||
institute: EPITA
|
||||
date: Jeudi 19 octobre 2017
|
||||
date: Jeudi 18 octobre 2018
|
||||
...
|
||||
|
||||
Durant ce deuxième TP, nous allons approfondir l'utilisation de Docker !
|
||||
Dans la troisième partie de ce TP, nous allons orchestrer nos conteneurs !
|
||||
|
||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||
<virli@nemunai.re> au plus tard le jeudi 26 octobre 2017 à 8 h 42. Consultez la
|
||||
<virli@nemunai.re> au plus tard le mercredi 24 octobre 2018 à 0 h 42. Consultez la
|
||||
dernière section de chaque partie pour plus d'information sur les éléments à
|
||||
rendre.
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
---
|
||||
title: Virtualisation légère -- TP n^o^ 2
|
||||
title: Virtualisation légère -- TP n^o^ 2.1
|
||||
subtitle: Construire des images Docker
|
||||
author: Pierre-Olivier *Nemunaire* Mercier
|
||||
institute: EPITA
|
||||
date: Jeudi 11 octobre 2018
|
||||
date: Jeudi 18 octobre 2018
|
||||
...
|
||||
|
||||
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
|
||||
<virli@nemunai.re> au plus tard le mercredi 24 octobre 2018 à 0 h 42. Consultez la
|
||||
dernière section de chaque partie pour plus d'information sur les éléments à
|
||||
rendre.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user