В 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
- Остановите Docker Machine если она запущена, командой
docker-machine stop
- Ы VirtualBox, добавьте Shared Folder: Settings > Shared Folders > Add share — каталог в котором будут находиться ваши проекты, например
D:\Projects
. Дайте директории соответствующее имяProjects
. - Перезапустите Docker Machine, с помощью команды
docker-machine start
. - Войдите с помощью SSH в Docker Machine командой
docker-machine ssh
. - Создайте директорию для точки монтирования, например:
mkdir -p /homedocker/projects
. - Примонтируйте Общую папку с нужным именем (
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.