\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 : ```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 ``` 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 : ``` 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 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.