Usando Docker Toolbox com pasta compartilhada em outro drive no Windows

Caso você queira compartilhar uma pasta que não seja a pasta padrão utilizada pelo Docker Toolbox você precisará fazer algumas configurações extras.

Para utilizar o Docker Toolbox, o VirtualBox instala uma máquina virtual chamada default, que roda a distribuição boot2docker do Linux. Devido a essa camada adicional de virtualização, alguns passos adicionais são necessários para compartilhar arquivos entre o sistema operacional do host e o container do Docker.

Preparando o VirtualBox para Compartilhar Pastas

O primeiro passo é tonar a pasta desejada compartilhavel. Como exemplo vamos utilizar a pasta H:\docker. Ela precisa ser compartilhada com a máquina virtual do VirtualBox chamada default, antes de ser montada como um volume dentro de um container do Docker. Isto pode ser feito de algumas formas diferentes mas segue os passos da solução apresentada neste post:

  1. Abra o “Docker Quickstart Terminal”.
  2. Com o Docker rodando, digite docker-machine stop default.
  3. Abra o Prompt de Comando do menu Iniciar (procure por cmd.exe).
  4. Navegue até a pasta do VirtualBox usando cd C:/Program Files/Oracle/VirtualBox
  5. Digite VBoxManage.exe sharedfolder add default --name "h/docker" --hostpath "\\?\h:\docker" --automount
  6. Digite VBoxManage.exe setextradata default VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root 1
  7. Digite VBoxManage.exe setextradata default VBoxInternal2/SharedFoldersEnableSymlinksCreate/h/docker 1

Os passos acima irão preparar o VirtualBox para compartilhas a pasta H:\docker. Agora é necessário montar a pasta dentro da máquina virtual do Docker:

  1. Abra o “Docker Quickstart Terminal”.
  2. Com o Docker rodando, digite docker-machine ssh default
  3. Digite sudo mkdir --parents /h/docker
  4. Digite sudo mount -t vboxsf h/work /h/docker/
  5. Digite exit

Agora você pode criar instâncias de container do Docker e compartilhar a pasta H:\docker como um volume montado. Veja o exemplo utilizando jupyter/scipy-notebook

Compartilhando uma Pasta com um Container Docker

Para criar um container Docker a partir da imagem jupyter/scipy-notebook, digite o comando a seguir e espere até ele ser competado: docker run --name="scipy" --user root -v /h/docker:/home/jovyan -d -e GRANT_SUDO=yes -p 8888:8888 jupyter/scipy-notebook start-notebook.sh --NotebookApp.token=''

Isto pode levar algum tempo, pois será necessário fazer o download e extrair a imagem. Quando terminar, você poderá acessar o notebook do Jupyter acessando 127.0.0.1:8888.

Deixe um comentário