Docker-machine monte automatiquement le répertoire des utilisateurs ... Mais parfois, cela ne suffit pas.
Je ne sais pas docker 1.6, mais 1.8 vous PEUX ajouter un montage supplémentaire pour docker machine
Ajouter un point de montage de machine virtuelle (partie 1)
CLI : (ne fonctionne que lorsque la machine est arrêtée)
VBoxManage sharedfolder add <machine name/id> --name <mount_name> --hostpath <host_dir> --automount
Ainsi, un exemple dans Windows serait
/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe sharedfolder add default --name e --hostpath 'e:\' --automount
GUI : (ne nécessite PAS l'arrêt de la machine)
- Démarrez "Oracle VM VirtualBox Manager"
- Clic-droit
<machine name>
(par défaut)
- Réglages...
- Dossiers partagés
- Le dossier + icône sur la droite (Ajouter un partage)
- Chemin du dossier:
<host dir>
(e :)
- Nom de dossier:
<mount name>
(e)
- Cochez "Auto-mount" et "Make Permanent" (Lecture uniquement si vous le souhaitez ...) (Le montage automatique est en quelque sorte inutile actuellement ...)
Montage dans boot2docker (partie 2)
Monter manuellement dans boot2docker :
- Il existe différentes manières de se connecter, d'utiliser "Show" dans "Oracle VM VirtualBox Manager", ou ssh / putty dans docker par adresse IP
docker-machine ip default
, etc ...
sudo mkdir -p <local_dir>
sudo mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir>
Mais ce n'est bon que jusqu'au redémarrage de la machine, puis le montage est perdu ...
Ajout d'un montage automatique à boot2docker :
Lors de la connexion à la machine
- Modifier / créer (en tant que root)
/mnt/sda1/var/lib/boot2docker/bootlocal.sh
, sda1 peut être différent pour vous ...
Ajouter
mkdir -p <local_dir>
mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir>
Avec ces changements, vous devriez avoir un nouveau point de montage. C'est l'un des rares fichiers que j'ai pu trouver qui est appelé au démarrage et qui est persistant. Jusqu'à ce qu'il y ait une meilleure solution, cela devrait fonctionner.
Ancienne méthode: moins recommandée , mais laissée comme alternative
En dernier recours , vous pouvez prendre l'alternative un peu plus fastidieuse, et vous pouvez simplement modifier l'image de démarrage.
git -c core.autocrlf=false clone https://github.com/boot2docker/boot2docker.git
cd boot2docker
git -c core.autocrlf=false checkout v1.8.1
#ou votre version appropriée
- Éditer
rootfs/etc/rc.d/automount-shares
Ajoutez une try_mount_share <local_dir> <mount_name>
ligne juste avant fi à la fin. Par exemple
try_mount_share /e e
Assurez-vous simplement de ne pas définir le sur quoi que ce soit dont le système d'exploitation a besoin, comme / bin, etc ...
docker build -t boot2docker .
#Cela prendra environ une heure la première fois :(
docker run --rm boot2docker > boot2docker.iso
- Sauvegardez l'ancien boot2docker.iso et copiez le nouveau à sa place, dans ~ / .docker / machine / machines /
Ça marche, c'est juste long et compliqué
docker version 1.8.1, version 0.4.0 de docker-machine