Как в Windows использовать каталоги с хоста

В Windows существуют некоторые ограничения на расположение директории рабочего пространства — давайте поговорим о том как их обойти.

Docker для Windows

В нативном Docker for Windows перейдите в раздел Settings > Share drive и выберите диск.

Docker Toolbox

Docker Toolbox ожидает, что тома данных будут находиться в пределах директории C:\Users. Это связано с тем, что Docker имеет ограниченный доступ к файловой системе на главном компьютере.

Если вам нужны каталоги проектов, которые будут расположены в другом месте, например, на диске D:\, нужно предпринять дополнительные шаги для достижения этого.

Примечание. В приведённых ниже шагах используется несколько имен примеров, которые вы должны заменить на подходящие для ваших нужд. Они есть:

  • директория в хостовой системе: D:\Projects
  • имя shared folder в VIrtualBox:  Projects
  • mount point в Docker Machine: /homedocker/projects

Установите произвольный каталог хоста в контейнере Docker

  1. Остановите Docker Machine если она запущена, командойdocker-machine stop
  2. Ы VirtualBox, добавьте Shared Folder: Settings > Shared Folders > Add share — каталог в котором будут находиться ваши проекты, например D:\Projects. Дайте директории соответствующее имя Projects.
  3. Перезапустите Docker Machine, с помощью командыdocker-machine start.
  4. Войдите с помощью SSH в Docker Machine командойdocker-machine ssh.
  5. Создайте директорию для точки монтирования, например: mkdir -p /homedocker/projects.
  6. Примонтируйте Общую папку с нужным именем (Projects): sudo mount -t vboxsf -o uid=1000,gid=50 Projects /homedocker/projects

Включение постоянного доступа

Но что произойдёт, если перезапустить Docker Machine? При следующем запуске точка монтирования не восстановится и вы не сможете получить доступ к проектам, пока снова не выполните монтирование директории.

Вы можете настроить постоянный монтаж директории , отредактировав конфигурацию Boot2Docker.

Отредактируйте файл /mnt/sda1/var/lib/boot2docker/profile (может потребоваться использовать sudo при открытии файла) и добавить команды:

mkdir /homedocker/projects 
sudo mount -t vboxsf -o uid=1000,gid=50 Projects/homedocker/projects

Проверьте работоспособность, остановив и перезагрузив Docker Machine.