2017-10-15 20:49:27 +00:00
|
|
|
\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-machine`
|
|
|
|
|
|
|
|
Pour ce TP, nous allons avoir besoin de `docker-machine`, installez-le sur
|
|
|
|
votre machine hôte, même si ce n'est pas un Linux : le but va être de lancer
|
|
|
|
plusieurs machines virtuelles Docker pour simuler un cluster.
|
|
|
|
|
|
|
|
Ce programme permet de simplifier la gestion du multiples environnements
|
|
|
|
Docker, comme par exemple lorsque l'on souhaite gérer un cluster de machines
|
|
|
|
pour un projet.
|
|
|
|
|
|
|
|
Ainsi, il est possible de provisionner et gérer des machines hôtes sur les
|
|
|
|
plates-formes de cloud habituelles. C'est également ce projet qui est à la base
|
|
|
|
de *Docker for Mac* et *Docker for Windows*, en permettant de lancer via,
|
|
|
|
respectivement, VirtualBox et Hyper-V, un environnement Linux prêt à être
|
|
|
|
utilisé avec Docker.
|
|
|
|
|
|
|
|
### Par la distribution binaire
|
|
|
|
|
|
|
|
L'équipe en charge de `docker-machine` met à disposition un exécutable compilé
|
|
|
|
pour bon nombres d'environnements. Nous pouvons l'installer en suivant la
|
|
|
|
procédure suivante :
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
<div lang="en-US">
|
2017-10-15 20:49:27 +00:00
|
|
|
```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
|
|
|
|
```
|
2017-10-17 06:29:07 +00:00
|
|
|
</div>
|
2017-10-15 20:49:27 +00:00
|
|
|
|
|
|
|
Si vous êtes dans un environnement différent, jetez un œil à
|
|
|
|
[la documentation d'installation](https://docs.docker.com/machine/install-machine/).
|
|
|
|
|
|
|
|
|
|
|
|
### Support de KVM
|
|
|
|
|
|
|
|
Le programme support de base de nombreux environnement, dont VirtualBox et
|
|
|
|
Hyper-V. Bien d'autres environnements peuvent être supportés, au moyen de
|
|
|
|
plug-ins.
|
|
|
|
|
|
|
|
Si vous utilisez KVM comme hyperviseur, vous allez avoir besoin d'installer le
|
|
|
|
plugins
|
|
|
|
[`docker-machine-kvm`](https://github.com/dhiltgen/docker-machine-kvm). Vous
|
|
|
|
n'aurez qu'à suivre les instructions du
|
|
|
|
[`README`](https://github.com/dhiltgen/docker-machine-kvm/blob/master/README.md)
|
|
|
|
!
|
|
|
|
|
|
|
|
|
|
|
|
### Vérification du fonctionnement
|
|
|
|
|
|
|
|
Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
|
|
|
|
`docker-machine` en exécutant la commande :
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
<div lang="en-US">
|
2017-10-15 20:49:27 +00:00
|
|
|
```
|
|
|
|
42sh$ docker-machine version
|
|
|
|
docker-machine version 0.12.2, build 9371605
|
|
|
|
```
|
2017-10-17 06:29:07 +00:00
|
|
|
</div>
|
2017-10-15 20:49:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
## `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 :
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
<div lang="en-US">
|
2017-10-15 20:49:27 +00:00
|
|
|
```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
|
|
|
|
```
|
2017-10-17 06:29:07 +00:00
|
|
|
</div>
|
2017-10-15 20:49:27 +00:00
|
|
|
|
|
|
|
### `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 :
|
|
|
|
|
2017-10-17 06:29:07 +00:00
|
|
|
<div lang="en-US">
|
2017-10-15 20:49:27 +00:00
|
|
|
```
|
|
|
|
42sh$ docker-compose --version
|
|
|
|
docker-compose version: 1.16.1
|
|
|
|
```
|
2017-10-17 06:29:07 +00:00
|
|
|
</div>
|
2017-10-15 20:49:27 +00:00
|
|
|
|
|
|
|
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.
|