# Docker-machine: la gestion simple de docker sous windows ![category](développement) ![tag](windows) ![tag](docker) Docker existe depuis peu sous windows, il est donc possible d'avoir la commande **docker** sous un environnement windows. Mais parfois il est utile d'avoir plusieurs machines virtuelles sur sa machine faisant tourner sur chaque hôtes virtuels un ou plusieurs containers. Docker-machine se propose de créer des machines virtuelles (VirtualBox) avec docker et de les administrer. On obtiendra donc sur son environnement .. aafig:: :textual: /---------------------------------\ | Machine Locale IP local1 | +---------------------------------+ | /-----------------------------\ | | | Virtuel 1 IP virtuel1 | | | \-----------------------------/ | | | | /-----------------------------\ | | | Virtuel 2 IP virtuel2 | | | \-----------------------------/ | | | | /-----------------------------\ | | | Virtuel 3 IP virtuel3 | | | \-----------------------------/ | | | \---------------------------------/ Installation ------------ Il faut au préalable avoir installé VirtualBox. Puis il faut installer docker-machine depuis les dépôts officiels ```bash wget https://github.com/docker/machine/releases/download/v0.8.0/docker-machine-Windows-x86_64.exe mv docker-machine-Windows-x86_64.exe docker-machine.exe mkdir "C:\Program Files\bin" mv docker-machines.exe "C:\Program Files\bin" ``` Il faut par la suite avoir dans son path C:/Program Files/bin afin de pouvoir lancer la commande *docker-machine* ```warning Il est possible d'installer docker-machine sur des machines linux ``` ```note J'ai ajouté un alias sous windows pour avoir **dm** au lieu de **docker-machine** ``` Utilisation ----------- lister les machines ``` docker-machine ls ``` créer une machine nommé test ``` docker-machine create --driver virtualbox test ``` arrêter / démarrer / supprimer la machine test ``` docker-machine stop/start/rm test ``` Obtenir l'adresse ip de la machine test ``` docker-machine ip test ``` Se connecter en ssh sur la machine test ``` docker-machine ssh test ``` Une fois connecter en ssh on peut lancer les commandes dockers classiques Visualisation de l'environnement d'un docker ``` docker-machine env test ``` Mettre à jours l'environnement afin de pouvoir se connecter sur le daemon docker de la machine test ``` docker-machine env test > dm.bat && dm.bat && rm dm.bat ``` On peut maintenant utiliser le client docker classique ``` docker ps docker run -d -p 80:80 nginx ``` Création d'un serveur nginx via docker machine sous windows ----------------------------------------------------------- Les étapes sont: * création d'un répertoire www * création d'un fichier index.html * création d'une machine * connexion en ssh sur la machine afin de créer le container docker *nginx* avec un partage de volume * récupération de l'ip de la machine pour test ```bash cd C:\Users\mylogin mkdir -p docker/wwww echo "test" > docker/www/index.html docker-machine create --driver virtualbox nginx docker-machine ssh nginx >> docker run -d -p 80:80 -v /c/Users/mylogin/docker/www:/usr/share/nginx/html --name nginx nginx >> exit docker-machine ip nginx ``` ```note par défaut docker-machine génère un partage entre C:/Users et /c/Users et part la suite on partage /c/Users de la machine virtuelle avec un volume du container```