A máquina Docker monta automaticamente o diretório de usuários ... Mas às vezes isso não é suficiente.
Não sei sobre o docker 1.6, mas no 1.8 você PODE adicionar uma montagem adicional à docker-machine
Adicionar Ponto de Montagem de Máquina Virtual (parte 1)
CLI : (só funciona quando a máquina está parada)
VBoxManage sharedfolder add <machine name/id> --name <mount_name> --hostpath <host_dir> --automount
Portanto, um exemplo no Windows seria
/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe sharedfolder add default --name e --hostpath 'e:\' --automount
GUI : (NÃO requer que a máquina seja parada)
- Inicie o "Oracle VM VirtualBox Manager"
- Clique com o botão direito
<machine name>
(padrão)
- Configurações...
- Pastas partilhadas
- A pasta + ícone à direita (adicionar compartilhamento)
- Caminho da pasta:
<host dir>
(e :)
- Nome da pasta:
<mount name>
(e)
- Marque "Montagem automática" e "Tornar permanente" (leia apenas se quiser ...) (A montagem automática é meio inútil atualmente ...)
Montagem em boot2docker (parte 2)
Monte manualmente no boot2docker :
- Existem várias maneiras de fazer login, use "Mostrar" no "Oracle VM VirtualBox Manager" ou ssh / putty no docker por endereço 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>
Mas isso só é bom até você reiniciar a máquina, e então a montagem é perdida ...
Adicionando uma montagem automática ao boot2docker :
Enquanto estiver conectado à máquina
- Editar / criar (como root)
/mnt/sda1/var/lib/boot2docker/bootlocal.sh
, sda1 pode ser diferente para você ...
Adicionar
mkdir -p <local_dir>
mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir>
Com essas mudanças, você deve ter um novo ponto de montagem. Este é um dos poucos arquivos que encontrei que é chamado na inicialização e é persistente. Até que haja uma solução melhor, isso deve funcionar.
Método antigo: menos recomendado , mas deixado como uma alternativa
Como último recurso , você pode escolher a alternativa um pouco mais tediosa e pode apenas modificar a imagem de inicialização.
git -c core.autocrlf=false clone https://github.com/boot2docker/boot2docker.git
cd boot2docker
git -c core.autocrlf=false checkout v1.8.1
#ou sua versão apropriada
- Editar
rootfs/etc/rc.d/automount-shares
Adicione a try_mount_share <local_dir> <mount_name>
linha logo antes de fi no final. Por exemplo
try_mount_share /e e
Apenas certifique-se de não configurar o para qualquer coisa que o sistema operacional precise, como / bin, etc ...
docker build -t boot2docker .
#Isso levará cerca de uma hora na primeira vez :(
docker run --rm boot2docker > boot2docker.iso
- Faça backup do boot2docker.iso antigo e copie o novo em seu lugar, em ~ / .docker / machine / machines /
Isso funciona, é apenas longo e complicado
docker versão 1.8.1, docker-machine versão 0.4.0