Docker – répertoire Windows partagé dans boot2docker
Comme vous avez pu le supposer avec mon dernier billet, je me suis mis sérieusement à Docker. Travaillant sous Windows (oui, oui… chacun son fardeau !), nous devons utiliser boot2docker pour construire des images et déployer des containers. Boot2docker est une VM GNU/Linux très petite (environ 20Mo) pour VirtualBox qui contient le serveur et le client Docker pour construire des images et manipuler des containers.
Quand on commence à jouer avec Docker, on récupère des images sur les dépôts distants. On tente la création de Dockerfile. Tout ce passe dans la VM de boot2docker. Ce qui pose rapidement 2 soucis :
- stocker/archiver les tests : on peut passer par un SCM distant (comme GitHub)
- utiliser les outils de développement de la machine host : certains utilisent un éditeur avec un mode FTP ou un partage samba (mais il faut avouer que ce n’est pas pratique)
En cherchant rapidement, il est possible de trouver des articles qui proposent de monter un partage entre la machine host (Windows ou Mac) et la machine guest (VM boot2docker). Comme la procédure ne fonctionne pas du premier coup, voici deux méthodes différentes pour arriver à nos fins.
Sommaire
Objectif
L’ojectif est de pouvoir éditer sur Windows des fichiers Dockerfile et autres ressources pour la construction d’une image Docker et de pouvoir construire l’image sans devoir transférer les fichiers entre Windows et boot2docker.
Boot2docker avec VirtualBox guest additions
La première solution consiste à modifier la VM de boot2docker. Pour celà, il faut télécharger une version de la VM qui supporte les options de VirtualBox (connues sous le nom de « VirtualBox guest additions »).
Ensuite, il faut remplacer l’image officielle qui se trouve dans c:\Users\[Votre login]\.boot2docker\boot2docker.iso
par la non-officielle tout juste téléchargée.
Avant de configurer la VM, il faut s’assurer qu’elle est arrêtée avec la commande suivante :
boot2docker stop
Maintenant, nous pouvons demander à VirtualBox de faire pointer le répertoire monté sur le répertoire de la machine host avec la commande suivante :
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe sharedfolder add boot2docker-vm -name home -hostpath C:\[Votre répertoire]
Enfin, vous pouvez démarrer boot2docker et vous y connecter :
boot2docker up boot2docker ssh
Pour information, votre répertoire partagé est monté dans le répertoire /Users.
Si jamais le répertoire est vide, arrêtez votre VM puis lancer la commande suivante :
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe sharedfolder remove boot2docker-vm -name c/Users
Vous pouvez à nouveau tester l’accès à votre répertoire. Si malgré tout vous n’arrivez pas à accéder à votre répertoire Windows dans la VM de boot2docker, n’hésitez pas à redémarrer votre OS host. Vérifiez également que vous utilisez la dernière version de VirtualBox (4.3.18 lors l’écriture de cet article).
Votre boot2docker vous résiste ? Avant de tout lancer par la fenêtre, je vais vous proposer une solution plus simple qui fonctionne très bien.
Boot2docker avec Vagrant
Par défaut Vagrant partage le répertoire courant du host dans le répertoire /vagrant de la VM. Alors pourquoi ne pas lancer boot2docker avec Vagrant ? Rien de plus simple avec les commandes suivantes :
# l'image d'origine avec docker 1.2.0 $ vagrant init mitchellh/boot2docker $ vagrant up $ vagrant ssh # l'image modifiée avec docker 1.3.0 $ vagrant init yungsang/boot2docker $ vagrant up $ vagrant ssh
Mission accomplie !
Je n’aurais rien de mieux à ajouter que :
## . ## ## ## == ## ## ## ## === /""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\______/ _ _ ____ _ _ | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __ | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_| boot2docker: 1.3.0
A très bientôt au milieu de tous ces containers !
https://blog.lecacheur.com/2014/10/27/docker-repertoire-windows-partage-dans-boot2docker/https://blog.lecacheur.com/wp-content/uploads/2014/10/6394678.pnghttps://blog.lecacheur.com/wp-content/uploads/2014/10/6394678-150x150.pngDéveloppementLinuxdocker,vagrantComme vous avez pu le supposer avec mon dernier billet, je me suis mis sérieusement à Docker. Travaillant sous Windows (oui, oui... chacun son fardeau !), nous devons utiliser boot2docker pour construire des images et déployer des containers. Boot2docker est une VM GNU/Linux très petite (environ 20Mo) pour VirtualBox...SeBSébastien LECACHEUR23r0@laposte.netAdministratorLe weblogue de SeB
Laisser un commentaire