dotcloud - hub - Montaje del directorio del sistema principal al contenedor en la ventana acoplable
docker inc (5)
Al igual que una actualización final, esta característica ahora se ha publicado en Docker (aunque la API ha cambiado desde la solicitud de extracción vinculada por @miric).
Simplemente use un comando como
docker run -v /tmp:/root myImage
para montar /tmp
desde la máquina host como /root
dentro de la imagen.
Fuente: https://docs.docker.com/engine/userguide/dockervolumes/
¿Cómo montar el directorio desde el sistema principal al contenedor en la ventana acoplable?
Esto ES POSIBLE en Docker:
Montar los datos en el contenedor de la aplicación
docker run -t -i -rm -volumes-from DATA -name client1 ubuntu bash
Solo para actualizar esta pregunta, esto pronto será posible en Docker.
Esta solicitud de extracción realmente ha implementado esta característica y pronto se fusionará con la maestra.
Puede usarlo ahora mismo si instala este tenedor .
TRUCO PARA OS X Y WINDOWS
2 montajes sucesivos: supongo que muchas publicaciones aquí podrían estar usando dos boot2docker, la razón por la que no ves nada es porque estás montando un directorio desde boot2docker no desde tu host. Básicamente necesita 2 montajes sucesivos: el primero para montar un directorio desde su host a su sistema y el segundo para montar el nuevo directorio desde boot2docker a su contenedor de esta manera:
monte el sistema local en boot2docker
sudo mount -t vboxsf hostfolder /boot2dockerfolder
monte el archivo boot2docker en el contenedor de linux
docker run -v /boot2dockerfolder:/root/containerfolder -i -t imagename
luego, cuando estés dentro de la carpeta contenedora, verás el contenido de tu carpeta de host
* Actualización - ver respuesta a continuación. esta ya no es la respuesta correcta *
No puede montarlos, por diseño, porque Docker ya no puede garantizar un entorno de ejecución repetible.
Sin embargo, puedes:
1) Importe el sistema de archivos raíz del host y cree una nueva imagen a partir de él:
tar -C / -c . | docker import - entend/custombase
2) Importe un sistema de archivos raíz de bootstrap, por ejemplo, el resultado de ejecutar ''debootstrap''. (Tenga en cuenta que así es como se creó la imagen oficial de "base", por lo que es mejor que simplemente ejecute ''docker pull base'')
debootstrap precise ./bootstrap
tar -C ./bootstrap -c . | docker import - entend/ubuntubase
3) Inyectar el contenido de un directorio local en un contenedor cuando lo ejecuta.
IMAGE=base; SRC=./stuff; DST=/tmp/stuff; CMD="echo hello world"; tar -C $src -c . | docker run $IMAGE -i /bin/sh -c "tar -C $DST -x; $CMD"
Esto ejecutará un contenedor desde $ IMAGE, copiará el directorio de host $ SRC en el directorio de contenedores $ DST, luego ejecutará el comando $ CMD
Este último ejemplo se usa generalmente para insertar código fuente antes de ejecutar un comando de compilación dentro del contenedor.
¡Espero que esto ayude!