Last corrections

This commit is contained in:
nemunaire 2016-09-08 04:40:34 +02:00 committed by Pierre-Olivier Mercier
parent dab19c6462
commit c04307c5bc
9 changed files with 34 additions and 47 deletions

View file

@ -4,7 +4,7 @@ PANDOCOPTS = --latex-engine=xelatex \
--normalize \ --normalize \
--number-sections \ --number-sections \
--smart \ --smart \
-M lang=frenchb \ -M lang=french \
-M fontsize=12pt \ -M fontsize=12pt \
-M papersize=a4paper \ -M papersize=a4paper \
-M mainfont="Linux Libertine O" \ -M mainfont="Linux Libertine O" \

View file

@ -7,10 +7,11 @@ Au fur et à mesure de vos tests, la taille utilisée par les données de Docker
peut devenir conséquente et son interface peut commencer à déborder peut devenir conséquente et son interface peut commencer à déborder
d'informations dépréciées. d'informations dépréciées.
Dans la mesure du possible, Docker essaie de ne pas encombrer inutilement votre Dans la mesure du possible, Docker essai de ne pas encombrer inutilement votre
disque dur avec les vieilles images qui ne sont plus utilisées. Il ne va disque dur avec les vieilles images qui ne sont plus utilisées. Il ne va
cependant jamais supprimer une image encore lié à un conteneur, ni les cependant jamais supprimer une image encore liée à un conteneur ; il ne
conteneurs qui n'auront pas été démarrés avec `--rm`. supprimera pas non plus les conteneurs qui n'auront pas été démarrés avec
`--rm`.
## Conteneurs ## Conteneurs

View file

@ -128,7 +128,7 @@ utilisez la commande `docker logs`.
## D'autres instructions ? ## D'autres instructions ?
Consultez <https://docs.docker.com/reference/builder/> pour la liste complète Consultez <https://docs.docker.com/engine/reference/builder/> pour la liste complète
des instructions reconnues. des instructions reconnues.

View file

@ -14,7 +14,7 @@ comme indiqué dans le message affiché en retour :
D'abord, le daemon va rechercher s'il possède localement l'image D'abord, le daemon va rechercher s'il possède localement l'image
*hello-world*. Si ce n'est pas le cas, il va aller la récupérer sur *hello-world*. Si ce n'est pas le cas, il va aller la récupérer sur
<hub.docker.com>. Ce site met à disposition un grand nombre d'images : des `hub.docker.com`. Ce site met à disposition un grand nombre d'images : des
systèmes de base comme Ubuntu, Debian, Centos, etc. jusqu'à des conteneurs systèmes de base comme Ubuntu, Debian, Centos, etc. jusqu'à des conteneurs
prêts à l'emploi : le serveur web nginx, la base de données MySQL, un serveur prêts à l'emploi : le serveur web nginx, la base de données MySQL, un serveur
node.js, etc. node.js, etc.
@ -43,8 +43,8 @@ docker images
Nous devrions constater la présence de deux images « Ubuntu », ayant un *TAG* Nous devrions constater la présence de deux images « Ubuntu », ayant un *TAG*
différent. Souvent, il existe plusieurs versions d'une même image. Pour Ubuntu différent. Souvent, il existe plusieurs versions d'une même image. Pour Ubuntu
par exemple, nous avons la possibilité de lancer la version `vivid`, `trusty` par exemple, nous avons la possibilité de lancer la version `precise`, `trusty`,
ou `precise`. `xenial` ou `yakkety`.
Chaque image est identifiable par son *Image ID* unique ; les noms d'images Chaque image est identifiable par son *Image ID* unique ; les noms d'images
ainsi que leurs tags sont, comme les tags Git, une manière humainement plus ainsi que leurs tags sont, comme les tags Git, une manière humainement plus
@ -76,7 +76,7 @@ transféré dans le conteneur.
## Modifier un conteneur ## Modifier un conteneur
À chaque fois que nous lançons un `run`, un nouveau conteneur est créé à partir À chaque fois que nous lançons un `run`, un nouveau conteneur est créé à partir
de l'image que l'on a précisé (via un mécanisme de Copy-On-Write, c'est donc de l'image que l'on a précisé (via un mécanisme de *Copy-On-Write*, c'est donc
très rapide et ne consomme pas beaucoup d'espace disque). Cela signifie que très rapide et ne consomme pas beaucoup d'espace disque). Cela signifie que
lorsque nous exécutons une commande modifiant les fichiers d'un conteneur, cela lorsque nous exécutons une commande modifiant les fichiers d'un conteneur, cela
ne modifie pas l'image de base, mais crée une nouvelle image. Que nous pouvons ne modifie pas l'image de base, mais crée une nouvelle image. Que nous pouvons

View file

@ -37,7 +37,8 @@ a été nommé `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, pour ce cours, nous allons avoir besoin de la
dernière version disponible : dernière version disponible. Référez-vous à la documentation officielle
correspondant à votre distribution :
<https://docs.docker.com/engine/installation/linux/> <https://docs.docker.com/engine/installation/linux/>

View file

@ -10,8 +10,8 @@ Pour automatiser le partage d'informations sur les IP et ports exposés, la
commande `run` possède l'option `--link` qui permet de définir dans les commande `run` possède l'option `--link` qui permet de définir dans les
variables d'environnement du conteneur que l'on va lancer. variables d'environnement du conteneur que l'on va lancer.
Le détail des variables ajoutées dans cette situation est disponible à Le détail des variables ajoutées dans cette situation est disponible dans
<https://docs.docker.com/userguide/dockerlinks/#environment-variables>. [la documentation de Docker](https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/#environment-variables).
On utilise généralement cette liaison pour fournir au conteneur hébergeant un On utilise généralement cette liaison pour fournir au conteneur hébergeant un
site web dynamique l'IP et le port où trouver la base de données : site web dynamique l'IP et le port où trouver la base de données :
@ -33,4 +33,4 @@ exemple), on a simplement à redémarrer l'ambassadeur plutôt que le conteneur
principal. principal.
La documentation officielle pour ce modèle est disponible à La documentation officielle pour ce modèle est disponible à
<https://docs.docker.com/articles/ambassador_pattern_linking/>. <https://docs.docker.com/engine/admin/ambassador_pattern_linking/>.

View file

@ -1,9 +1,9 @@
\newpage \newpage
Sujet à rendre Projet et rendu
============== ===============
## Projet ## Sujet
Écrivez un `Dockerfile` pour conteneriser un client netsoul. Écrivez un `Dockerfile` pour conteneriser un client netsoul.
@ -18,8 +18,10 @@ docker run -e NETSOUL_LOGIN="login_x" -e PASSSOCKS="xnigol42" netsoul
Passer la configuration d'un conteneur dans des variables d'environnement est Passer la configuration d'un conteneur dans des variables d'environnement est
une méthode couramment utilisée. Ces variables sont récupérées et traitées par une méthode couramment utilisée. Ces variables sont récupérées et traitées par
le script d'ENTRYPOINT. Ce qui permet d'utiliser la ligne de commande pour le script
d'autres choses. d'[ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#/entrypoint). Ce
qui permet de n'utiliser la ligne de commande que pour des indiquer le
programme à lancer et ses arguments.
## Modalité de rendu ## Modalité de rendu

View file

@ -11,17 +11,14 @@ Durant ce premier TP, nous allons apprendre à utiliser Docker !
Tous les éléments de ce TP (exercices et questions) sont à rendre à Tous les éléments de ce TP (exercices et questions) sont à rendre à
<virli@nemunai.re> au plus tard le jeudi 15 septembre 2016 à 8 h 42. Consultez la <virli@nemunai.re> au plus tard le jeudi 15 septembre 2016 à 8 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. Vous pouvez placer les réponses aux questions dans le corps du courriel rendre.
ou dans un fichier joint.
En tant que personnes sensibilisées à la sécurité des échanges En tant que personnes sensibilisées à la sécurité des échanges
électroniques, vous devrez m'envoyer vos rendus signés avec votre clef électroniques, vous devrez m'envoyer vos rendus signés avec votre clef
PGP. Pensez à PGP. Pensez à
[me](http://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) [me](http://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96)
faire signer votre clef et n'hésitez pas à faire signer votre clef et n'hésitez pas à
[faire signer votre clef](http://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). [faire signer la votre](http://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
Vous pouvez utiliser l'adresse <signcheck@nemunai.re> pour savoir si
vous vous y prenez correctement.
\hypersetup{linkcolor=black} \hypersetup{linkcolor=black}
\tableofcontents \tableofcontents

View file

@ -9,11 +9,11 @@ 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 vous interagissez via un client (le programme `docker`). La communication entre
le daemon et le client s'effectuant au travers d'une socket, le client peut ne le daemon et le client s'effectuant au travers d'une socket, le client peut ne
pas être forcément sur la machine qui exécutera effectivement les conteneurs. pas être sur la même machine qui exécutera effectivement les conteneurs.
C'est ce qu'il se passe lorsque vous utilisez Docker4Windows et Docker4Mac : C'est ce qu'il se passe lorsqu'on utilise *Docker4Windows* ou *Docker4Mac* :
une machine virtuelle Linux est lancé parallèlement à votre système et chaque une machine virtuelle Linux est lancé parallèlement au système de base et
commande `docker` que vous tapez est passé au deamon dans la machine virtuelle. chaque commande `docker` tappée est passée au deamon dans la machine virtuelle.
## `runc` et `containerd` ## `runc` et `containerd`
@ -23,8 +23,8 @@ La notion de conteneurs est maintenant normalisées par
Docker lance des conteneurs respectant cette norme grâce au programme `runc`. 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é au programme Toute la gestion de l'exécution du conteneur est déléguée au programme
`containerd`, également issue de l'initiative. C'est lui aussi un daemon (géré `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 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 relancer en cas de crash par exemple) ou encore de récupérer les logs de chaque
conteneur. conteneur.
@ -54,31 +54,17 @@ ajoutée au dessus de l'image. Cette couche est propre au conteneur et est
temporaire : l'image n'est pas modifié par l'exécution d'un conteneur. temporaire : l'image n'est pas modifié par l'exécution d'un conteneur.
Chaque conteneur s'exécute dans un environnement restreint et distinct de Chaque conteneur s'exécute dans un environnement restreint et distinct de
l'environnement principal où vous avez votre bureau. Par exemple, dans cet l'environnement principal (où vous avez votre bureau). Par exemple, dans cet
environnement, vous ne pouvez pas voir les processus qui n'y sont pas. environnement, vous ne pouvez pas voir les processus qui sont situé en dehors,
ni accéder aux fichiers extérieurs.
## Les registres Docker (*Docker registries*) ## Les registres Docker (*Docker registries*)
Les registres sont des plates-formes de stockage, publiques ou privées, Les registres sont des plates-formes de stockage, publiques ou privées,
contenant des images. Ils permettent de récupérer des images, mais également contenant des images. Ils permettent de récupérer des images, mais également
d'en réceptionner. d'en envoyer.
Le registre utilisé de base est le [Docker Hub](https://hub.docker.com/) : il Le registre utilisé de base est le [Docker Hub](https://hub.docker.com/) : il
contient à la fois des images officielles (ubuntu, debian, nginx, ...) et des contient à la fois des images officielles (ubuntu, debian, nginx, ...) et des
images crées par des utilisateurs. images crées par des utilisateurs.
## Outils annexes
En plus du Docker-engine, le daemon et client que nous allons utiliser
aujourd'hui, Docker développe également :
* **Docker-machine :** qui permet d'installer et configurer le daemon
rapidement sur plusieurs machines (afin de les utiliser au sein d'un cluster) ;
* **Docker-swarm :** désormais intégré à Docker (depuis la version 1.12), cela
permet de gérer un cluster de machine et de faire de l'orchestration ;
* **Docker-compose :** qui permet de lancer un ensemble de conteneurs dépend
les uns des autres (par exemple un serveur web et sa base de données).