machine - how to use docker
¿Cuál es la mejor forma de compartir archivos desde Windows a Boot2docker VM? (4)
使用 docker-toolbox, 共享 目录 c c /c/User.Usando el docker-toolbox, el directorio compartido solo puede ser / c / User
Directorio invalido. Los directorios de volumen deben estar debajo de su directorio de usuarios
## 命令在"Docker Quickstart Terminal"中执行Step1&Step2即可。Command in the "Docker Quickstart Terminal" in the implementation of Step1 & Step2 can be.
# Step 1. 用命令行添加报错,在VirtualBox图像界面手工添加上的,如上图所示。Add the error in the command line, in the VirtualBox image interface manually add, as shown above.
"C:/Program Files/Oracle/VirtualBox/VBoxManage.exe" sharedfolder add default --name "E_DRIVE" --hostpath "e://" --automount
# Try 1. 只能临时起效,重启VM之后共享失效。Only temporary effect, restart VM after sharing failure.
#docker-machine ssh default "sudo mkdir -p /e" # Create a directory identifier, consistent with the windows drive letter
#docker-machine ssh default "sudo mount -t vboxsf -o uid=1000,gid=50 E_DRIVE /e"
# Try 2. 修改/etc/fstab做永久挂载不管用,每次重启/etc/fstab内容都会重置。Modify / etc / fstab do not use the permanent mount, each restart / etc / fstab content will be reset
#docker-machine ssh default "sudo sed -i ''$ a/E_DRIVE /e vboxsf uid=1000,gid=50 0 0'' /etc/fstab"
# Step 2. 一行命令搞定e盘共享。或者修改`C:/Program Files/Docker Toolbox/start.sh`。参考:https://github.com/docker/machine/issues/1814#issuecomment-239957893
docker-machine ssh default "cat <<EOF | sudo tee /var/lib/boot2docker/bootlocal.sh && sudo chmod u+x /var/lib/boot2docker/bootlocal.sh
#!/bin/sh
mkdir -p /e
mount -t vboxsf -o uid=1000,gid=50 E_DRIVE /e
EOF
"
A continuación, reinicie la VM, intente docker run --name php-fpm --rm -it -v /e:/var/www/html php:7.1.4-fpm /bin/bash
esta docker run --name php-fpm --rm -it -v /e:/var/www/html php:7.1.4-fpm /bin/bash
Referencia:
- ¿Cuál es la mejor forma de compartir archivos desde Windows a Boot2docker VM?
- http://hessian.cn/p/1502.html
- Windows + Boot2Docker, cómo agregar D: / unidad para ser accesible desde Docker?
Lo siento por mi inglés pobre (traducido por google), espero que esto ayude. Por cierto, no hay bloque de código de rebaja?
Tengo mi código listo en Windows, pero creo que no es fácil compartirlo con boot2docker.
También encuentro que boot2docker no puede persistir mis cambios. Por ejemplo, creo una carpeta / temp, después de reiniciar boot2docker, esta carpeta desaparece, es muy incómodo.
¿Cuál es tu camino cuando tienes algún código en Windows, pero necesitas hacerlo?
---actualizar---
Intento actualizar la configuración en Virtual Box y reiniciar boot2docker, pero no está funcionando en mi máquina.
docker@boot2docker:/$ ls -al /c total 4 drwxr-xr-x 3 root root 60 Jun 17 05:42 ./ drwxrwxr-x 17 root root 400 Jun 17 05:42 ../ dr-xr-xr-x 1 docker staff 4096 Jun 16 09:47 Users/
Boot2Docker es una pequeña máquina virtual de Linux que se ejecuta en VirtualBox. Entonces, antes de que pueda usar sus archivos (desde Windows) en Docker (que se está ejecutando en esta VM), primero debe compartir su código con la VM de Boot2Docker.
Para hacerlo, monta su carpeta de Windows en la máquina virtual cuando se apaga (aquí se supone un nombre de máquina virtual default
):
C:/Program Files/Oracle/VirtualBox/VBoxManage sharedfolder /
add default -name win_share -hostpath c:/work
(Alternativamente, también puede abrir la interfaz de usuario de VirtualBox y montar la carpeta en su máquina virtual tal como lo hizo en su captura de pantalla).
Ahora ssh
en la VM de Boot2Docker para la Terminal de inicio rápido de Docker:
docker-machine ssh default
A continuación, realice la montura:
- Cree una carpeta dentro de la VM:
sudo mkdir /VM_share
- Monte la carpeta de Windows en ella:
sudo mount -t vboxsf win_share /VM_share
Después de eso, puede acceder a C:/work
dentro de su máquina virtual Boot2Docker:
cd /VM_share
Ahora que su código está presente dentro de su VM, puede usarlo con Docker, ya sea montándolo como un volumen para el contenedor:
docker-machine ssh default
docker run --volume /VM_share:/folder/in/container some/image
O utilizándolo mientras construyes tu imagen de Docker:
...
ADD /my_windows_folder /folder
...
En la bandeja del sistema, debes tener a la linda ballena Docker nadando. Haga clic derecho y seleccione Configuración.
Haga clic en Aplicar. Aparecerá el cuadro de diálogo Credenciales y deberá proporcionar sus credenciales actuales de Windows. Asegúrese de darlo correctamente. También sospecho que podrías necesitar ser un administrador.
Para montar nuestro directorio de host (c: / data) en un contenedor, vamos a usar el indicador -v (volumen) mientras ejecutamos el contenedor. Aquí se muestra una ejecución de muestra.
Tengo centos en mi contenedor local de docker.
docker run -vc: / data: / data centos ls / data
Vea esta answer .
Tengo Windows 10 Home Edition con Docker toolbox 1.12.2 y VirtualBox 5.1.6.
Pude montar correctamente una carpeta en C:/Users
en mi contenedor sin realizar ningún paso adicional, como docker-machine ssh default
.
Ejemplo:
docker run -it --rm -v /c/Users/antonyj/Documents/code:/mnt ubuntu /bin/bash
Entonces, tener tus archivos en C:/Users
probablemente sea lo más simple de hacer.
Si no desea tener sus archivos en C:/Users
, entonces debe seguir los pasos en la respuesta aceptada .