Je commence tout juste à apprendre Docker et j'essaie d'obtenir une configuration simple avec boot2docker sous Windows. Je ne trouvais dans aucun tutoriel ni exemple en ligne comment rendre mes fichiers de projet accessibles à la machine virtuelle boot2docker.
J'ai téléchargé boot2docker et j'ai réussi à l'installer et à le faire fonctionner. Je peux également utiliser SSH et exécuter l'exemple de docker hello world. Je sais donc que l'installation de Docker est opérationnelle dans la machine virtuelle.
Maintenant, la question: Comment puis-je obtenir ma Dockerfile
et mes fichiers d'application sur le boot2docker VM afin de pouvoir construire un conteneur Docker?
En d'autres termes, j'essaie de faire cela à partir de la machine virtuelle boot2docker:
$ cd /some-directory-from-my-Host-os
$ docker build .
J'ai essayé de suivre les instructions de https://github.com/boot2docker/boot2docker#folder-sharing et de configurer un partage SAMBA. Je parviens à me connecter de Windows au partage à \\192.168.59.103\data
, mais cela ne me dit rien comment accéder à ce même répertoire depuis la machine virtuelle boot2docker.
Je pense que la réponse pourrait être évidente, mais je suis sûr que je ne suis pas le seul à frapper ce mur. Merci de votre aide!
Depuis boot2docker 1.3, la possibilité de monter un dossier partagé a été ajoutée afin que la VM puisse partager votre dossier dev directement. Plus d'informations ici: https://github.com/boot2docker/boot2docker#virtualbox-guest-additions
Je ne sais pas si ça aide sous Windows. Mais pour Mac voir:
boot2docker avec les additions invitées VirtualBox
Comment monter/Utilisateurs dans boot2docker
tl; dr Construisez votre propre boot2docker.iso personnalisé avec VirtualBox Guest Ajouts (voir link ) ou télécharger http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso et enregistrez-le dans ~/.boot2docker/boot2docker.iso.
Après votre progression actuelle et en supposant que votre conteneur samba soit en cours d’exécution, vous pouvez trouver le chemin du dossier/data sur votre Boot2docker VM en exécutant:
$ docker inspect <samba_container_id>
Cela listera les détails de configuration des conteneurs. Tout en bas, vous devriez voir:
"Volumes": {
"/data": "/mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
C'est votre chemin boot2docker vm/data . Cd simplement dans ce dossier
$ cd /mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
Depuis l'explorateur Windows, accédez à:
\\192.168.59.103\data
Maintenant, vous pouvez coller/copier/créer des fichiers dans ce dossier de données et vous devriez les voir peupler sur votre Boot2docker VM à: path: /mnt/sda1/var/lib/docker/vfs/dir/<long_folder_id_here>
IMHO le meilleur moyen serait d'utiliser scp. Comme vous pouvez le faire avec ssh, vous pouvez utiliser winscp pour envoyer le fichier Dockerfile à la VM.
ssh le fichier dans votre VM
dockerfile=$(cat LocalDockerfile)
boot2docker ssh "echo '$dockerfile' > Dockerfile"
écrit ici http://micahasmith.github.io/2014/11/07/copying-files-into-boot2docker/
Sur Boot2Docker, changez votre répertoire "cd/c" pour pouvoir voir les dossiers des utilisateurs sous Windows. Placez le contenu que vous souhaitez partager dans les dossiers de vos utilisateurs préférés.
J'utilise vagrant avec cette case: https://vagrantcloud.com/yungsang/boot2docker
et j'ai changé le fichier Vagrant pour utiliser (auto-) rsync sous Windows:
rsync_args = ["--verbose", "--archive", "--delete", "-z"]
rsync_auto = true
rsync_exclude = [".vagrant/"]
config.vm.synced_folder ".", "/vagrant", rsync__args: rsync_args, rsync__exclude: rsync_exclude, rsync__auto: rsync_auto, type: "rsync"