From 4e107e631d668390d5134d6df9ad60247504415a Mon Sep 17 00:00:00 2001 From: nemunaire Date: Wed, 17 Oct 2018 19:31:33 +0200 Subject: [PATCH] Split docker-orchestration into docker-advanced and docker-orchestration --- tutorial/docker-advanced/Makefile | 25 +++++ .../check.sh | 0 .../chronograf.png | Bin .../chronograf_latest.png | Bin .../chronograf_setup.png | 0 .../compose.md | 48 ++++----- .../manual.md | 94 +++++++++--------- tutorial/docker-advanced/rendu.md | 34 +++++++ tutorial/docker-advanced/setup.md | 70 +++++++++++++ tutorial/docker-advanced/tutorial.md | 22 ++++ .../what.md | 0 tutorial/docker-orchestration/Makefile | 2 +- tutorial/docker-orchestration/rendu.md | 9 +- tutorial/docker-orchestration/setup.md | 68 +------------ tutorial/docker-orchestration/tutorial.md | 10 +- tutorial/dockerfiles/tutorial.md | 6 +- 16 files changed, 236 insertions(+), 152 deletions(-) create mode 100644 tutorial/docker-advanced/Makefile rename tutorial/{docker-orchestration => docker-advanced}/check.sh (100%) rename tutorial/{docker-orchestration => docker-advanced}/chronograf.png (100%) rename tutorial/{docker-orchestration => docker-advanced}/chronograf_latest.png (100%) rename tutorial/{docker-orchestration => docker-advanced}/chronograf_setup.png (100%) rename tutorial/{docker-orchestration => docker-advanced}/compose.md (89%) rename tutorial/{docker-orchestration => docker-advanced}/manual.md (64%) create mode 100644 tutorial/docker-advanced/rendu.md create mode 100644 tutorial/docker-advanced/setup.md create mode 100644 tutorial/docker-advanced/tutorial.md rename tutorial/{docker-orchestration => docker-advanced}/what.md (100%) diff --git a/tutorial/docker-advanced/Makefile b/tutorial/docker-advanced/Makefile new file mode 100644 index 0000000..c159b39 --- /dev/null +++ b/tutorial/docker-advanced/Makefile @@ -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 diff --git a/tutorial/docker-orchestration/check.sh b/tutorial/docker-advanced/check.sh similarity index 100% rename from tutorial/docker-orchestration/check.sh rename to tutorial/docker-advanced/check.sh diff --git a/tutorial/docker-orchestration/chronograf.png b/tutorial/docker-advanced/chronograf.png similarity index 100% rename from tutorial/docker-orchestration/chronograf.png rename to tutorial/docker-advanced/chronograf.png diff --git a/tutorial/docker-orchestration/chronograf_latest.png b/tutorial/docker-advanced/chronograf_latest.png similarity index 100% rename from tutorial/docker-orchestration/chronograf_latest.png rename to tutorial/docker-advanced/chronograf_latest.png diff --git a/tutorial/docker-orchestration/chronograf_setup.png b/tutorial/docker-advanced/chronograf_setup.png similarity index 100% rename from tutorial/docker-orchestration/chronograf_setup.png rename to tutorial/docker-advanced/chronograf_setup.png diff --git a/tutorial/docker-orchestration/compose.md b/tutorial/docker-advanced/compose.md similarity index 89% rename from tutorial/docker-orchestration/compose.md rename to tutorial/docker-advanced/compose.md index ea5fdd4..9bd46b6 100644 --- a/tutorial/docker-orchestration/compose.md +++ b/tutorial/docker-advanced/compose.md @@ -12,19 +12,19 @@ construction).
```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 ```
@@ -61,9 +61,9 @@ suit :
```yaml -volumes: - mysql-data: - driver: local + volumes: + mysql-data: + driver: local ```
@@ -72,11 +72,11 @@ l'emplacement à partager :
```yaml -[...] - mysql: [...] - volumes: - - mysql-data:/var/lib/mysql + mysql: + [...] + volumes: + - mysql-data:/var/lib/mysql ```
@@ -94,9 +94,9 @@ qui pourront être utilisés par les `services`. On pourrait donc avoir :
```yaml -networks: - knotdns-slave-net: - driver: bridge + networks: + knotdns-slave-net: + driver: bridge ```
@@ -146,7 +146,7 @@ le résultat :
```shell -docker-compose up + docker-compose up ```
diff --git a/tutorial/docker-orchestration/manual.md b/tutorial/docker-advanced/manual.md similarity index 64% rename from tutorial/docker-orchestration/manual.md rename to tutorial/docker-advanced/manual.md index 4db8cb5..99df211 100644 --- a/tutorial/docker-orchestration/manual.md +++ b/tutorial/docker-advanced/manual.md @@ -26,7 +26,7 @@ allons tâcher d'utiliser ce même port pour tester localement :
``` -docker container run -p 8086:8086 -d --name mytsdb influxdb + docker container run -p 8086:8086 -d --name mytsdb influxdb ```
@@ -35,9 +35,9 @@ notre base de données en appelant :
``` -42sh$ curl -f http://localhost:8086/ping -42sh$ echo $? -0 + 42sh$ curl -f http://localhost:8086/ping + 42sh$ echo $? + 0 ```
@@ -46,16 +46,15 @@ le client fourni :
``` -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 ```
@@ -68,7 +67,7 @@ faut utiliser la commande `docker container logs` :
``` -docker container logs mytsdb + docker container logs mytsdb ```
@@ -86,7 +85,7 @@ système. Pour cela, on commence par télécharger *Telegraf* :
```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 ```
@@ -95,48 +94,46 @@ Puis, lançons *Telegraf* :
```shell -cd /tmp/telegraf -./telegraf --config telegraf.conf + cd /tmp/telegraf + ./telegraf --config telegraf.conf ```
**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 :
```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 ```
@@ -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) diff --git a/tutorial/docker-advanced/rendu.md b/tutorial/docker-advanced/rendu.md new file mode 100644 index 0000000..27e0b85 --- /dev/null +++ b/tutorial/docker-advanced/rendu.md @@ -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 , 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) : + +
+``` + login_x-TP2/tp/docker-compose.yml + login_x-TP2/tp/mymonitoring-stack.yml +``` +
diff --git a/tutorial/docker-advanced/setup.md b/tutorial/docker-advanced/setup.md new file mode 100644 index 0000000..1dfbf38 --- /dev/null +++ b/tutorial/docker-advanced/setup.md @@ -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 : + . + +### 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 : + +
+```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 +``` +
+ +### `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 : + +
+``` + 42sh$ docker-compose --version + docker-compose version: 1.16.1 +``` +
+ +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. diff --git a/tutorial/docker-advanced/tutorial.md b/tutorial/docker-advanced/tutorial.md new file mode 100644 index 0000000..b606806 --- /dev/null +++ b/tutorial/docker-advanced/tutorial.md @@ -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 à + 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 diff --git a/tutorial/docker-orchestration/what.md b/tutorial/docker-advanced/what.md similarity index 100% rename from tutorial/docker-orchestration/what.md rename to tutorial/docker-advanced/what.md diff --git a/tutorial/docker-orchestration/Makefile b/tutorial/docker-orchestration/Makefile index 285a2d4..686e33e 100644 --- a/tutorial/docker-orchestration/Makefile +++ b/tutorial/docker-orchestration/Makefile @@ -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 \ diff --git a/tutorial/docker-orchestration/rendu.md b/tutorial/docker-orchestration/rendu.md index 4a0868e..27e0b85 100644 --- a/tutorial/docker-orchestration/rendu.md +++ b/tutorial/docker-orchestration/rendu.md @@ -28,12 +28,7 @@ cela dépendra de votre avancée dans le projet) :
``` -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 ```
diff --git a/tutorial/docker-orchestration/setup.md b/tutorial/docker-orchestration/setup.md index 935b59b..b99a877 100644 --- a/tutorial/docker-orchestration/setup.md +++ b/tutorial/docker-orchestration/setup.md @@ -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 :
```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 ```
@@ -64,65 +59,12 @@ Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
``` -42sh$ docker-machine version -docker-machine version 0.12.2, build 9371605 + 42sh$ docker-machine version + docker-machine version 0.12.2, build 9371605 ```
-## `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 : - . - -### 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 : - -
-```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 -``` -
- -### `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 : - -
-``` -42sh$ docker-compose --version -docker-compose version: 1.16.1 -``` -
- -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 diff --git a/tutorial/docker-orchestration/tutorial.md b/tutorial/docker-orchestration/tutorial.md index 6e1d345..8bec3e2 100644 --- a/tutorial/docker-orchestration/tutorial.md +++ b/tutorial/docker-orchestration/tutorial.md @@ -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 à - au plus tard le jeudi 26 octobre 2017 à 8 h 42. Consultez la + 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. diff --git a/tutorial/dockerfiles/tutorial.md b/tutorial/dockerfiles/tutorial.md index e652155..2117a51 100644 --- a/tutorial/dockerfiles/tutorial.md +++ b/tutorial/dockerfiles/tutorial.md @@ -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 à - au plus tard le jeudi 18 octobre 2018 à 8 h 42. Consultez la + 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.