tuto: Prepare for 2022

This commit is contained in:
nemunaire 2021-09-12 10:31:36 +02:00
parent 37f0ba4b3d
commit af860b40a0
40 changed files with 246 additions and 1974 deletions

View File

@ -3,7 +3,7 @@ title: Virtualisation légère -- TP n^o^ 1
subtitle: Les bases de Docker subtitle: Les bases de Docker
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps} author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA institute: EPITA
date: Mardi 15 septembre 2020 date: Jeudi 16 septembre 2021
abstract: | abstract: |
Durant ce premier TP, nous allons apprendre à utiliser Docker, puis Durant ce premier TP, nous allons apprendre à utiliser Docker, puis
nous apprendrons à déployer un groupe de conteneurs ! nous apprendrons à déployer un groupe de conteneurs !

View File

@ -3,7 +3,7 @@ title: Virtualisation légère -- TP n^o^ 2
subtitle: Construire des images Docker et leur sécurité subtitle: Construire des images Docker et leur sécurité
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps} author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA institute: EPITA
date: Mardi 22 septembre 2020 date: Jeudi 23 septembre 2021
abstract: | abstract: |
Durant ce deuxième TP, nous allons voir comment créer nos propres Durant ce deuxième TP, nous allons voir comment créer nos propres
images, comment s'assurer qu'elles n'ont pas de vulnérabilités images, comment s'assurer qu'elles n'ont pas de vulnérabilités

View File

@ -1,14 +1,6 @@
include ../pandoc-opts.mk include ../pandoc-opts.mk
SOURCES = tutorial.md \ SOURCES = tutorial.md installation.md chroot.md pseudofs.md capabilities.md cgroups.md oom.md seccomp.md project-intro.md project-body.md project-rendu.md
../devops/devops.md \
../devops/what.md \
../devops/tools.md \
../devops/ci.md \
../devops/publish-docker.md \
../docker-internals/oci.md \
../docker-internals/registry.md \
rendu.md
all: tutorial.pdf all: tutorial.pdf

View File

@ -5,20 +5,20 @@ Projet et rendu
## Sujet ## Sujet
**Ce projet, étalé sur ce TP et le TP précédent, constitue le cœur de la Vous allez commencer aujourd'hui un projet qui s'étendra au prochain TP et qui
notation de ce cours.** consistera à réaliser la partie d'isolation de la moulinette des ACUs !
Vous allez continuer aujourd'hui le projet qui s'étendra depuis le TP précédent
et qui consistera à réaliser la partie d'isolation de la moulinette des ACUs !
Cette semaine, il faudra faire en sorte de restreindre un groupe de processus Cette semaine, il faudra faire en sorte de restreindre un groupe de processus
pour qu'il s'exécute indépendemment de votre système. pour qu'il ne puisse pas faire de déni de service sur notre machine.
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
utiliser du C, du C++, du Python, du shell, etc. utiliser du C, du C++, du Python, etc.
L'usage de bibliothèques **non relatives** au projet est autorisé : le but de L'usage de bibliothèques **non relatives** au projet est autorisé : le but de
ce sujet est d'évaluer votre compréhension et votre utilisation de la ce sujet est d'évaluer votre compréhension et votre utilisation de la
tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du
moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette
plomberie, n'hésitez pas à l'utiliser ! plomberie, n'hésitez pas à l'utiliser !
Gardez en tête que ce projet sera à continuer au prochain TP, où il sera
principalement question de faire des appels systèmes.

View File

@ -0,0 +1,39 @@
## Modalité de rendu
Un service automatique s'occupe de réceptionner vos rendus, de faire les
vérifications nécessaires 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://virli.nemunai.re/quiz/6).
## 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 (adaptez les extensions et les éventuels
fichiers supplémentaires associés au langage que vous aurez choisi
pour chaque exercice) :
<div lang="en-US">
```
login_x-TP3/
login_x-TP3/escape.c
login_x-TP3/procinfo.sh
login_x-TP3/suspend_schedule.sh
login_x-TP3/view_caps.c
login_x-TP3/monitor.sh
login_x-TP3/monitor_init.sh
login_x-TP3/syscall_filter.c
```
</div>
Les premières étapes du projet ne sont pas à rendre et feront l'objet
d'un rendu à part.

View File

@ -1,49 +0,0 @@
\newpage
Rendu
=====
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://virli.nemunai.re/quiz/5).
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) :
<div lang="en-US">
```
login_x-TP3/
login_x-TP3/cicd-playbook/
login_x-TP3/cicd-playbook/cicd-setup.yml
login_x-TP3/cicd-playbook/roles/...
login_x-TP3/youp0m/
login_x-TP3/youp0m/.drone.yml
login_x-TP3/youp0m/.ansible/... # Pour ceux qui auraient fait le 5.4 optionnel
login_x-TP3/youp0m/Dockerfile
login_x-TP3/youp0m/entrypoint.sh
login_x-TP3/youp0m/.dockerignore
login_x-TP3/youp0m/...
login_x-TP3/registry_play.sh
```
</div>

View File

@ -1,20 +1,20 @@
--- ---
title: Virtualisation légère -- TP n^o^ 3 title: Virtualisation légère -- TP n^o^ 3
subtitle: DevOps, intégration et déploiement continu subtitle: Linux Internals partie 1
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps} author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA institute: EPITA
date: Mercredi 28 octobre 2020 date: Jeudi 30 septembre 2021
abstract: | abstract: |
Durant ce troisième TP, nous allons jouer les DevOps et déployer Ce premier TP consacré aux Linux Internals va nous permettre
automatiquement des services ! d'appréhender les notions de pseudos systèmes de fichiers, de
cgroups ainsi que de capabilities.
\vspace{1em} \vspace{1em}
Tous les éléments de ce TP (exercices et projet) sont à rendre à Certains éléments de ce TP sont à rendre à <virli@nemunai.re> au
<virli@nemunai.re> au plus tard le **mercredi 4 novembre 2020 à 12 h plus tard le jeudi 12 novembre 2020 à 12 h 42. Consultez la
42**. Consultez la dernière section de chaque partie pour plus d'information dernière section de chaque partie pour plus d'information sur les
sur les éléments à rendre. Et n'oubliez pas de répondre aux [questions de éléments à rendre.
cours](https://virli.nemunai.re/quiz/5).
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 à

View File

@ -1,11 +1,11 @@
include ../pandoc-opts.mk include ../pandoc-opts.mk
SOURCES = tutorial.md installation.md chroot.md pseudofs.md capabilities.md cgroups.md oom.md seccomp.md project-intro.md project-body.md project-rendu.md SOURCES_TUTO = tutorial.md setup.md mount.md namespaces.md cmpns.md docker-exec.md networkns.md pidns.md mountns.md userns.md rendu.md
all: tutorial.pdf all: tutorial.pdf
tutorial.pdf: ${SOURCES} tutorial.pdf: ${SOURCES_TUTO}
pandoc ${PANDOCOPTS} -o $@ $+ pandoc ${PANDOCOPTS} -o $@ $+
clean:: clean::

View File

@ -5,20 +5,20 @@ Projet et rendu
## Sujet ## Sujet
Vous allez commencer aujourd'hui un projet qui s'étendra au prochain TP et qui **Ce projet, étalé sur ce TP et le TP précédent, constitue le cœur de la
consistera à réaliser la partie d'isolation de la moulinette des ACUs ! notation de ce cours.**
Vous allez continuer aujourd'hui le projet qui s'étendra depuis le TP précédent
et qui consistera à réaliser la partie d'isolation de la moulinette des ACUs !
Cette semaine, il faudra faire en sorte de restreindre un groupe de processus Cette semaine, il faudra faire en sorte de restreindre un groupe de processus
pour qu'il ne puisse pas faire de déni de service sur notre machine. pour qu'il s'exécute indépendemment de votre système.
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
utiliser du C, du C++, du Python, etc. utiliser du C, du C++, du Python, du shell, etc.
L'usage de bibliothèques **non relatives** au projet est autorisé : le but de L'usage de bibliothèques **non relatives** au projet est autorisé : le but de
ce sujet est d'évaluer votre compréhension et votre utilisation de la ce sujet est d'évaluer votre compréhension et votre utilisation de la
tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du
moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette
plomberie, n'hésitez pas à l'utiliser ! plomberie, n'hésitez pas à l'utiliser !
Gardez en tête que ce projet sera à continuer au prochain TP, où il sera
principalement question de faire des appels systèmes.

View File

@ -1,39 +1,35 @@
## Modalité de rendu 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 les Un service automatique s'occupe de réceptionner vos rendus, de faire les
vérifications nécessaires et de vous envoyer un accusé de réception (ou de vérifications nécessaires et de vous envoyer un accusé de réception (ou de
rejet). rejet).
Ce service écoute sur l'adresse <virli@nemunai.re>, c'est donc à cette adresse 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 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 envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
sera pas pris en compte. sera pas pris en compte.
Par ailleurs, n'oubliez pas de répondre à Pour différencier le rendu du TP, du rendu du projet, ajoutez une balise
[l'évaluation du cours](https://virli.nemunai.re/quiz/6). `[PROJET]` au sujet de votre courriel, afin qu'il soit traité comme tel.
N'hésitez pas à indiquer dans le corps du courriel votre
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
drôle si vous n'avez rien à dire.
Tarball
-------
## Tarball Le projet à rendre pour ce cours est à placer dans une tarball (pas d'archive
ZIP, RAR, ...).
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à Voici une arborescence type:
placer dans une tarball (pas d'archive ZIP, RAR, ...).
Voici une arborescence type (adaptez les extensions et les éventuels
fichiers supplémentaires associés au langage que vous aurez choisi
pour chaque exercice) :
<div lang="en-US"> <div lang="en-US">
``` ```
login_x-TP3/ login_x-mymoulette/README
login_x-TP3/escape.c login_x-mymoulette/...
login_x-TP3/procinfo.sh
login_x-TP3/suspend_schedule.sh
login_x-TP3/view_caps.c
login_x-TP3/monitor.sh
login_x-TP3/monitor_init.sh
login_x-TP3/syscall_filter.c
``` ```
</div> </div>
Les premières étapes du projet ne sont pas à rendre et feront l'objet
d'un rendu à part.

49
tutorial/4/rendu.md Normal file
View File

@ -0,0 +1,49 @@
\newpage
Projet et rendu
===============
Projet
------
[Le sujet complet du projet est disponible ici](https://virli.nemunai.re/project-3.pdf). Il
n'est pas à rendre en même temps que le TP. Consultez ses modalités de rendu
pour plus d'informations.
Modalités de rendu
------------------
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.
Afin d'orienter correctement votre rendu, ajoutez une balise `[TP5]` au sujet
de votre courriel. N'hésitez pas à indiquer dans le corps du courriel votre
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
drôle si vous n'avez rien à dire.
Par ailleurs, n'oubliez pas de répondre à
[l'évaluation du cours](https://virli.nemunai.re/quiz/7).
Tarball
-------
Tous les exercices de ce TP sont à placer dans une tarball (pas d'archive ZIP,
RAR, ...).
Voici une arborescence type :
<div lang="en-US">
```
login_x-TP5/cmpns.sh
login_x-TP5/mydocker_exec.sh
login_x-TP5/myswitch_root.sh
```
</div>

View File

@ -1,20 +1,19 @@
--- ---
title: Virtualisation légère -- TP n^o^ 4 title: Virtualisation légère -- TP n^o^ 4
subtitle: Linux Internals partie 1 subtitle: Linux Internals partie 2
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps} author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA institute: EPITA
date: Jeudi 4 novembre 2020 date: Jeudi 7 octobre 2021
abstract: | abstract: |
Ce premier TP consacré aux Linux Internals va nous permettre Le but de ce second TP sur les mécanismes internes du noyau va nous
d'appréhender les notions de pseudos systèmes de fichiers, de permettre d'utiliser les commandes et les appels systèmes relatifs
cgroups ainsi que de capabilities. aux *namespaces* ainsi que d'appréhender la complexité des systèmes
de fichiers.
\vspace{1em} \vspace{1em}
Certains éléments de ce TP sont à rendre à <virli@nemunai.re> au Tous les exercices de ce TP sont à rendre à <virli@nemunai.re> au
plus tard le jeudi 12 novembre 2020 à 12 h 42. Consultez la plus tard le jeudi 19 novembre 2020 à 12 h 42.
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, 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 à

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,19 @@
include ../pandoc-opts.mk include ../pandoc-opts.mk
SOURCES_TUTO = tutorial.md setup.md mount.md namespaces.md cmpns.md docker-exec.md networkns.md pidns.md mountns.md userns.md rendu.md SOURCES = tutorial.md \
../devops/devops.md \
../devops/what.md \
../devops/tools.md \
../devops/ci.md \
../devops/publish-docker.md \
../docker-internals/oci.md \
../docker-internals/registry.md \
rendu.md
all: tutorial.pdf all: tutorial.pdf
tutorial.pdf: ${SOURCES_TUTO} tutorial.pdf: ${SOURCES}
pandoc ${PANDOCOPTS} -o $@ $+ pandoc ${PANDOCOPTS} -o $@ $+
clean:: clean::

View File

@ -1,35 +0,0 @@
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 les
vérifications nécessaires 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.
Pour différencier le rendu du TP, du rendu du projet, ajoutez une balise
`[PROJET]` au sujet de votre courriel, afin qu'il soit traité comme tel.
N'hésitez pas à indiquer dans le corps du courriel votre
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
drôle si vous n'avez rien à dire.
Tarball
-------
Le projet à rendre pour ce cours est à placer dans une tarball (pas d'archive
ZIP, RAR, ...).
Voici une arborescence type:
<div lang="en-US">
```
login_x-mymoulette/README
login_x-mymoulette/...
```
</div>

View File

@ -1,49 +1,49 @@
\newpage \newpage
Projet et rendu Rendu
=============== =====
Projet
------
[Le sujet complet du projet est disponible ici](https://virli.nemunai.re/project-3.pdf). Il
n'est pas à rendre en même temps que le TP. Consultez ses modalités de rendu
pour plus d'informations.
Modalités de rendu 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 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 vérifications élémentaires et de vous envoyer un accusé de réception (ou de
rejet). rejet).
Ce service écoute sur l'adresse <virli@nemunai.re>. C'est donc à cette adresse 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 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 envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
sera pas pris en compte. sera pas pris en compte.
Afin d'orienter correctement votre rendu, ajoutez une balise `[TP5]` au sujet
de votre courriel. N'hésitez pas à indiquer dans le corps du courriel votre
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
drôle si vous n'avez rien à dire.
Par ailleurs, n'oubliez pas de répondre à Par ailleurs, n'oubliez pas de répondre à
[l'évaluation du cours](https://virli.nemunai.re/quiz/7). [l'évaluation du cours](https://virli.nemunai.re/quiz/5).
Tarball Tarball
------- -------
Tous les exercices de ce TP sont à placer dans une tarball (pas d'archive ZIP, Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
RAR, ...). placer dans une tarball (pas d'archive ZIP, RAR, ...).
Voici une arborescence type : Voici une arborescence type (vous pourriez avoir des fichiers
supplémentaires) :
<div lang="en-US"> <div lang="en-US">
``` ```
login_x-TP5/cmpns.sh login_x-TP3/
login_x-TP5/mydocker_exec.sh login_x-TP3/cicd-playbook/
login_x-TP5/myswitch_root.sh login_x-TP3/cicd-playbook/cicd-setup.yml
login_x-TP3/cicd-playbook/roles/...
login_x-TP3/youp0m/
login_x-TP3/youp0m/.drone.yml
login_x-TP3/youp0m/.ansible/... # Pour ceux qui auraient fait le 5.4 optionnel
login_x-TP3/youp0m/Dockerfile
login_x-TP3/youp0m/entrypoint.sh
login_x-TP3/youp0m/.dockerignore
login_x-TP3/youp0m/...
login_x-TP3/registry_play.sh
``` ```
</div> </div>

View File

@ -1,19 +1,20 @@
--- ---
title: Virtualisation légère -- TP n^o^ 5 title: Virtualisation légère -- TP n^o^ 5
subtitle: Linux Internals partie 2 subtitle: DevOps, intégration et déploiement continu
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps} author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA institute: EPITA
date: Jeudi 12 novembre 2020 date: Jeudi 4 novembre 2021
abstract: | abstract: |
Le but de ce second TP sur les mécanismes internes du noyau va nous Durant ce nouveau TP, nous allons jouer les DevOps et déployer
permettre d'utiliser les commandes et les appels systèmes relatifs automatiquement des services !
aux *namespaces* ainsi que d'appréhender la complexité des systèmes
de fichiers.
\vspace{1em} \vspace{1em}
Tous les exercices de ce TP sont à rendre à <virli@nemunai.re> au Tous les éléments de ce TP (exercices et projet) sont à rendre à
plus tard le jeudi 19 novembre 2020 à 12 h 42. <virli@nemunai.re> au plus tard le **mercredi 4 novembre 2020 à 12 h
42**. Consultez la dernière section de chaque partie pour plus d'information
sur les éléments à rendre. Et n'oubliez pas de répondre aux [questions de
cours](https://virli.nemunai.re/quiz/5).
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 à

View File

@ -3,15 +3,19 @@
Installation Installation
============ ============
Avant de voir de quoi il s'agit, afin de gagner du temps, nous allons commencer
par installer Docker.
## Prérequis ## Prérequis
Docker repose sur plusieurs techniques implémentées dans les récents noyaux Docker repose sur plusieurs techniques implémentées dans les récents noyaux
Linux. Nous consacrerons les prochains cours à comprendre leur Linux (et plus marginalement, Windows). Nous consacrerons les prochains cours à
fonctionnement. Ces techniques ne sont pas limitées à une architecture de comprendre leur fonctionnement. Ces techniques, contrairement aux instructions
microprocesseur spécifique (comme peuvent l'être les instructions de de virtualisation qui rendent les hyperviseurs attractifs, ne sont pas limitées
virtualisation nécessaire pour rendre les hyperviseurs attractifs) ; cependant à une architecture de microprocesseur spécifique ; cependant la communauté
la communauté autour de Docker utilisant principalement l'architecture `amd64`, autour de Docker utilise principalement l'architecture `amd64`, c'est sur cette
c'est sur cette dernière que Docker pourra être exploité à son plein potentiel. dernière que Docker pourra être exploité à son plein potentiel, suivi de près
par l'architecture `arm64`.
Avant de continuer, assurez-vous que votre machine a bien démarré sur un noyau Avant de continuer, assurez-vous que votre machine a bien démarré sur un noyau
64 bits. Le retour de la commande `uname -m` doit vous indiquer : 64 bits. Le retour de la commande `uname -m` doit vous indiquer :
@ -22,15 +26,24 @@ x86_64
``` ```
</div> </div>
Ou si vous êtes intrépide :
<div lang="en-US">
```
aarch64
```
</div>
Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` : Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
<div lang="en-US"> <div lang="en-US">
``` ```
5.8.9-gentoo 5.14.2-gentoo
``` ```
</div> </div>
Vous ne pourrez pas utiliser Docker avec un noyau antérieur à la version 3.10. Rassurez-vous, même si vous n'avez pas compilé le dernier noyau disponible sur
<kernel.org>, Docker s'utilise à partir de Linux 3.10.
## Par le gestionnaire de paquets ## Par le gestionnaire de paquets
@ -40,9 +53,10 @@ plus ou moins récente. Sous Debian et ses dérivés (Ubuntu, Mint, ...) le paqu
a été nommé [`docker.io`](https://packages.debian.org/sid/docker.io). a été nommé [`docker.io`](https://packages.debian.org/sid/docker.io).
Si dans un environnement de production, on préférera sans doute utiliser une Si dans un environnement de production, on préférera sans doute utiliser une
version déjà bien éprouvée, pour ce cours, nous allons avoir besoin de la version déjà bien éprouvée (comme celle des dépôts de sa distribution), pour ce
**dernière version disponible**. Référez-vous à la documentation officielle cours, nous allons avoir besoin de la **dernière version
correspondant à votre distribution : disponible**. Référez-vous à la documentation officielle correspondant à votre
distribution :
<https://docs.docker.com/engine/install/debian/> <https://docs.docker.com/engine/install/debian/>
@ -66,6 +80,13 @@ Une fois l'installation terminée, lancez l'application : elle ajoutera une
icône dans la zone de notification, vous permettant de contrôler l'exécution de icône dans la zone de notification, vous permettant de contrôler l'exécution de
la machine virtuelle sous-jacente. la machine virtuelle sous-jacente.
Notez qu'à partir de janvier 2022, ces applications passent sous une licence
payante pour les grosses entreprises[^TODO]. Cela ne concernera nous concerne
pas, car la licence est gratuite pour un usage éducatif ou personnel. Notez que
ce n'est pas le binaire Docker qui change de licence, elle reste libre, mais
seulement les applications Docker Desktop.
[^TODO]: FIXME article de blog concernant docker desktop
## Évaluation en ligne ## Évaluation en ligne
@ -93,32 +114,33 @@ Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
<div lang="en-US"> <div lang="en-US">
``` ```
Client: Client:
Version: 19.03.12 Version: 20.10.8
API version: 1.40 API version: 1.41
Go version: go1.14.6 Go version: go1.16.6
Git commit: 48a66213fe Git commit: 3967b7d28e
Built: Thu Aug 6 01:27:59 2020 Built: Wed Aug 4 12:55:42 2021
OS/Arch: linux/amd64 OS/Arch: linux/amd64
Context: default
Experimental: false Experimental: false
Server: Server:
Engine: Engine:
Version: 19.03.12 Version: 20.10.8
API version: 1.40 (minimum version 1.12) API version: 1.41 (minimum version 1.12)
Go version: go1.14.6 Go version: go1.16.6
Git commit: 48a66213fe Git commit: 75249d88bc
Built: Thu Aug 6 01:26:25 2020 Built: Wed Aug 4 12:55:42 2021
OS/Arch: linux/amd64 OS/Arch: linux/amd64
Experimental: true Experimental: true
containerd: containerd:
Version: 1.2.13 Version: 1.5.5
GitCommit: 35bd7a5f69c13e1563af8a93431411cd9ecf5021 GitCommit: 72cec4be58a9eb6b2910f5d10f1c01ca47d231c0.m
runc: runc:
Version: 1.0.0-rc10 Version: 1.0.2
GitCommit: GitCommit: v1.0.2-0-g52b36a2d
docker-init: docker-init:
Version: 0.18.0 Version: 0.19.0
GitCommit: fec3683b971d9c3ef73f284f176672c44b448662 GitCommit: de40ad0
``` ```
</div> </div>

View File

@ -7,7 +7,7 @@ Docker est un écosystème d'outils de haut niveau, permettant d'utiliser des
*conteneurs*. *conteneurs*.
Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel
vous interagissez via un client (le programme `docker`). La communication entre nous interagissons via un client (le programme `docker`). La communication entre
le daemon et le client s'effectuant sur une API REST généralement au travers le daemon et le client s'effectuant sur une API REST généralement au travers
d'une socket. d'une socket.
@ -21,6 +21,9 @@ au deamon dans la machine virtuelle.[^dockermachine]
`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/>
Commençons par planter le décors, en détaillant les principaux mécanismes de
Docker.
## Les images Docker ## Les images Docker
@ -29,7 +32,7 @@ d'un ensemble de couches, agrégées selon le principe d'UnionFS.
Une image peut, par exemple, contenir : Une image peut, par exemple, contenir :
* un système Ubuntu complet, * un système Ubuntu opérationnel,
* le programme `busybox`, * le programme `busybox`,
* un serveur web et votre application web, prêts à l'emploi, * un serveur web et votre application web, prêts à l'emploi,
* ... * ...
@ -45,7 +48,7 @@ les outils fournis, soit les récupérer depuis un registre.
Alors que les images constituent la partie immuable de Docker, les conteneurs Alors que les images constituent la partie immuable de Docker, les conteneurs
sont sa partie vivante. Chaque conteneur est créé à partir d'une image : à sont sa partie vivante. Chaque conteneur est créé à partir d'une image : à
chaque fois que vous lancez un conteneur, une couche lecture/écriture est chaque fois que nous lançons un conteneur, une couche lecture/écriture est
ajoutée au dessus de l'image. Cette couche est propre au conteneur et ajoutée au dessus de l'image. Cette couche est propre au conteneur et
temporaire : l'image n'est pas modifiée par l'exécution d'un conteneur. temporaire : l'image n'est pas modifiée par l'exécution d'un conteneur.
@ -67,3 +70,7 @@ Le registre utilisé de base est le [Docker Hub](https://hub.docker.com/) : il
contient à la fois des images officielles (ubuntu, debian, nginx, ...), des contient à la fois des images officielles (ubuntu, debian, nginx, ...), des
images créées par des utilisateurs, mais aussi des images de grands éditeurs, images créées par des utilisateurs, mais aussi des images de grands éditeurs,
payantes, à destination des entreprises. payantes, à destination des entreprises.
Des registres alternatifs existent comme celui de
[quay.io](https://quay.io/#FIXME), et les dépôts de sources tels que [GitHub](#FIXME) et
[GitLab](#FIXME) le proposent également.

View File

@ -3,13 +3,13 @@ title: Ελαφριά εικονικοποίηση -- Πρακτική δουλ
subtitle: κυβερνήτης subtitle: κυβερνήτης
author: Πιέρ-Ολιβιέ *νεμυναιρε* [ῥαφοπώλης]{.smallcaps} author: Πιέρ-Ολιβιέ *νεμυναιρε* [ῥαφοπώλης]{.smallcaps}
institute: ΣΠκΠΤ institute: ΣΠκΠΤ
date: Πέμπτη 19 Νοεμβρίου 2020 date: Πέμπτη 19 Νοεμβρίου 2021
abstract: | abstract: |
Ο στόχος αυτού του τελευταίου εργαστηρίου είναι να κατανοήσει το κυβερνήτης και την ενορχήστρωση εμπορευματοκιβωτίων. Ο στόχος αυτού του τελευταίου εργαστηρίου είναι να κατανοήσει το κυβερνήτης και την ενορχήστρωση εμπορευματοκιβωτίων.
\vspace{1em} \vspace{1em}
Οι ασκήσεις για αυτό το πρακτικό έργο μπορούν να επιστραφούν στη διεύθυνση <ανδροππήςρε@nemunai.re> το αργότερο την Πέμπτη 26 Νοεμβρίου 2020 στις 11:42 μ.μ., οι ερωτήσεις των μαθημάτων πρέπει επίσης να ολοκληρωθούν πριν από αυτήν την ημερομηνία. Δείτε το τελευταίο μέρος αυτού του εργαστηρίου για λεπτομέρειες. Οι ασκήσεις για αυτό το πρακτικό έργο μπορούν να επιστραφούν στη διεύθυνση <ανδροππήςρε@nemunai.re> το αργότερο την Πέμπτη 26 Νοεμβρίου 2021 στις 11:42 μ.μ., οι ερωτήσεις των μαθημάτων πρέπει επίσης να ολοκληρωθούν πριν από αυτήν την ημερομηνία. Δείτε το τελευταίο μέρος αυτού του εργαστηρίου για λεπτομέρειες.
Καθώς οι άνθρωποι γνωρίζουν την ασφάλεια των ηλεκτρονικών ανταλλαγών, πρέπει να μου στείλετε τις υπογεγραμμένες αποδόσεις σας με το κλειδί PGP. Θυμηθείτε να [με](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) υπογράψετε το κλειδί σας και μην διστάσετε [να υπογράψετε το δικό σας](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). Καθώς οι άνθρωποι γνωρίζουν την ασφάλεια των ηλεκτρονικών ανταλλαγών, πρέπει να μου στείλετε τις υπογεγραμμένες αποδόσεις σας με το κλειδί PGP. Θυμηθείτε να [με](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) υπογράψετε το κλειδί σας και μην διστάσετε [να υπογράψετε το δικό σας](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
... ...

View File

@ -3,7 +3,7 @@ title: Virtualisation légère -- TP n^o^ 6
subtitle: Kubernetes subtitle: Kubernetes
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps} author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA institute: EPITA
date: Jeudi 19 novembre 2020 date: Jeudi 19 novembre 2021
abstract: | abstract: |
Le but de ce dernier TP est d'appréhender Kubernetes et l'orchestration de Le but de ce dernier TP est d'appréhender Kubernetes et l'orchestration de
conteneurs. conteneurs.