Split docker-orchestration into docker-advanced and docker-orchestration

This commit is contained in:
nemunaire 2018-10-17 19:31:33 +02:00
parent 9dcd2da076
commit 4e107e631d
16 changed files with 236 additions and 152 deletions

View 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

View file

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Before After
Before After

View file

@ -12,19 +12,19 @@ construction).
<div lang="en-US"> <div lang="en-US">
```yaml ```yaml
version: '3' version: '3'
services: services:
influxdb: influxdb:
... ...
chronograf: chronograf:
build: grafana/ build: grafana/
image: nginx image: nginx
ports: ports:
- "3000:3000" - "3000:3000"
volumes: volumes:
- ./:/tmp/toto - ./:/tmp/toto
links: links:
- influxdb - influxdb
``` ```
</div> </div>
@ -61,9 +61,9 @@ suit :
<div lang="en-US"> <div lang="en-US">
```yaml ```yaml
volumes: volumes:
mysql-data: mysql-data:
driver: local driver: local
``` ```
</div> </div>
@ -72,11 +72,11 @@ l'emplacement à partager :
<div lang="en-US"> <div lang="en-US">
```yaml ```yaml
[...]
mysql:
[...] [...]
volumes: mysql:
- mysql-data:/var/lib/mysql [...]
volumes:
- mysql-data:/var/lib/mysql
``` ```
</div> </div>
@ -94,9 +94,9 @@ qui pourront être utilisés par les `services`. On pourrait donc avoir :
<div lang="en-US"> <div lang="en-US">
```yaml ```yaml
networks: networks:
knotdns-slave-net: knotdns-slave-net:
driver: bridge driver: bridge
``` ```
</div> </div>
@ -146,7 +146,7 @@ le résultat :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
docker-compose up docker-compose up
``` ```
</div> </div>

View file

@ -26,7 +26,7 @@ allons tâcher d'utiliser ce même port pour tester localement :
<div lang="en-US"> <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> </div>
@ -35,9 +35,9 @@ notre base de données en appelant :
<div lang="en-US"> <div lang="en-US">
``` ```
42sh$ curl -f http://localhost:8086/ping 42sh$ curl -f http://localhost:8086/ping
42sh$ echo $? 42sh$ echo $?
0 0
``` ```
</div> </div>
@ -46,16 +46,15 @@ le client fourni :
<div lang="en-US"> <div lang="en-US">
``` ```
42sh$ docker container run --rm -it --link mytsdb:influxdb \ 42sh$ docker container run --rm -it --link mytsdb:influxdb \
--entrypoint "/usr/bin/influx" influxdb -host 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.6.3
Connected to http://influxdb:8086 version 1.0.1 InfluxDB shell version: 1.6.3
InfluxDB shell version: 1.0.1 > show databases
> show databases name: databases
name: databases name
--------------- ---------------
name _internal
_internal
``` ```
</div> </div>
@ -68,7 +67,7 @@ faut utiliser la commande `docker container logs` :
<div lang="en-US"> <div lang="en-US">
``` ```
docker container logs mytsdb docker container logs mytsdb
``` ```
</div> </div>
@ -86,7 +85,7 @@ système. Pour cela, on commence par télécharger *Telegraf* :
<div lang="en-US"> <div lang="en-US">
```shell ```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 tar xzv -C /tmp
``` ```
</div> </div>
@ -95,48 +94,46 @@ Puis, lançons *Telegraf* :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
cd /tmp/telegraf cd /tmp/telegraf
./telegraf --config telegraf.conf ./telegraf --config telegraf.conf
``` ```
</div> </div>
**Remarque :** La configuration par défaut va collecter les données de la **Remarque :** La configuration par défaut va collecter les données de la
machine locale et les envoyer sur le serveur situé à machine locale et les envoyer sur le serveur situé à
`http://localhost:8086`. Ici, cela fonctionne donc parce que l'on a fait en `http://localhost:8086`. Ici, cela fonctionne parce que l'on a fait en sorte de
sorte de redirigé le port de notre conteneur sur notre machine locale (option rediriger le port de notre conteneur sur notre machine locale (option `-p`).
`-p`).
Et observons ensuite : Et observons ensuite :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
42sh$ docker container run --rm -it --link mytsdb:influxdb \ 42sh$ docker container run --rm -it --link mytsdb:influxdb \
--entrypoint "/usr/bin/influx" influxdb -host 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.6.3
Connected to http://influxdb:8086 version 1.0.1 InfluxDB shell version: 1.6.3
InfluxDB shell version: 1.0.1 > show databases
> show databases name: databases
name: databases name
--------------- ---------------
name _internal
_internal telegraf
telegraf
> use telegraf > use telegraf
Using database telegraf Using database telegraf
> show measurements > show measurements
name: measurements name: measurements
------------------ name
name ------------------
cpu cpu
disk disk
diskio diskio
kernel kernel
mem mem
processes processes
swap swap
system system
``` ```
</div> </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'interface de *Chronograf* est disponible sur le port 8888.
L'image Docker officielle accepte que l'emplacement du serveur InfluxDB soit Consultez la [documentation du conteneur](https://hub.docker.com/_/chronograf)
passée dans variable d'environnement si besoin.
`INFLUXDB_URL`. [Consultez la documentation du conteneur si besoin](https://store.docker.com/images/chronograf).
![Résultat obtenu](chronograf_latest.png) ![Résultat obtenu](chronograf_latest.png)

View 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>

View 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.

View 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

View file

@ -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 \ PANDOCOPTS = --latex-engine=xelatex \
--standalone \ --standalone \
--normalize \ --normalize \

View file

@ -28,12 +28,7 @@ cela dépendra de votre avancée dans le projet) :
<div lang="en-US"> <div lang="en-US">
``` ```
login_x-TP2/tp/docker-compose.yml login_x-TP2/tp/docker-compose.yml
login_x-TP2/tp/mymonitoring-stack.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
``` ```
</div> </div>

View file

@ -3,11 +3,6 @@
Mise en place 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` ## `docker-machine`
@ -33,9 +28,9 @@ procédure suivante :
<div lang="en-US"> <div lang="en-US">
```shell ```shell
curl -L https://github.com/docker/machine/releases/download/v0.12.2/docker-machine-Linux-x86_64 \ curl -L https://github.com/docker/machine/releases/download/v0.15.0/docker-machine-Linux-x86_64 \
> /usr/bin/docker-machine > /usr/bin/docker-machine
chmod +x /usr/bin/docker-machine chmod +x /usr/bin/docker-machine
``` ```
</div> </div>
@ -64,65 +59,12 @@ Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
<div lang="en-US"> <div lang="en-US">
``` ```
42sh$ docker-machine version 42sh$ docker-machine version
docker-machine version 0.12.2, build 9371605 docker-machine version 0.12.2, build 9371605
``` ```
</div> </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 ## Play With Docker
Tout comme pour le TP précédent, si vous avez des difficultés pour réaliser les Tout comme pour le TP précédent, si vous avez des difficultés pour réaliser les

View file

@ -1,15 +1,15 @@
--- ---
title: Virtualisation légère -- TP n^o^ 2 title: Virtualisation légère -- TP n^o^ 2.3
subtitle: Aller plus loin avec Docker subtitle: L'orchestration avec Docker
author: Pierre-Olivier *Nemunaire* Mercier author: Pierre-Olivier *Nemunaire* Mercier
institute: EPITA 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 à 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 à dernière section de chaque partie pour plus d'information sur les éléments à
rendre. rendre.

View file

@ -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 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 18 octobre 2018
... ...
Durant ce deuxiè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 mercredi 24 octobre 2018 à 0 h 42. Consultez la
dernière section de chaque partie pour plus d'information sur les éléments à dernière section de chaque partie pour plus d'information sur les éléments à
rendre. rendre.