2014-10-29 3 views
20

Я запускаю boot2docker 1.3 на Win7.boot2docker сценарий запуска для монтирования локальной общей папки с хостом

Я хочу подключить общую папку.

В VirtualBox Manager под свойствами изображения-> общих папок я добавил папку, которую я хочу, и назвал ее «c/shared». Проверяются флажки «автоустановить» и «сделать перманентные».

При загрузке ботинка boot2docker он не монтируется. Я должен сделать дополнительно:

sudo mount -t vboxsf c/shared /c/shared 

для его отображения. Поскольку мне нужно, чтобы каждый раз, когда я когда-либо пользовался докером, мне бы хотелось, чтобы он просто запускался при загрузке или уже был там. Поэтому я подумал, есть ли какой-то сценарий запуска, который я мог бы добавить, но я не могу найти, где это будет.

Благодаря

EDIT: Это на меня орать об этом являющемся дубликате Boot2Docker on Mac - Accessing Local Files, который является другим вопросом. Я хотел установить папку, которая не была одним из значений по умолчанию, например/User на OSX или/c/Users в окнах. И я специально задаю сценарии запуска.

+0

возможный дубликат [Boot2Docker на Mac - Доступ к локальным файлам] (http://stackoverflow.com/questions/24212228/boot2docker-on-mac-accessing-local-files) – dnozay

ответ

18

/var/lib/boot2docker/bootlocal.sh подходит вашим потребностям, вероятно, он будет работать по скрипту /opt/bootscripts.sh

И bootscripts.sh также поместит выход в /var/log/bootlocal.log см сегмент ниже (boot2docker 1.3.1 версии)

# Allow local HD customisation 
if [ -e /var/lib/boot2docker/bootlocal.sh ]; then 
    /var/lib/boot2docker/bootlocal.sh > /var/log/bootlocal.log 2>&1 & 
fi 

Один случай использования для меня

I обычно ставят shared каталог как /c/Users/larry/shared, затем добавить скрипт

#/bin/bash 
ln -s /c/Users/larry/shared /home/docker/shared 

Таким образом, каждый раз, я могу получить доступ ~/shared в boot2docker так же, как и в принимающих

см FAQ.md (предоставленный @KCD)

+2

с использованием докерной версии 1.6.2, каждый раз, когда я редактирую /opt/bootlocal.sh, чтобы добавить команду запуска, она исчезает при перезапуске. – deathemperor

+2

это /var/lib/boot2docker/boot2docker.sh, я не знаю, почему @ user3699741 отредактировал мой ответ на неверную индикацию. –

+0

Пригвожденный! Один QQ: где сопоставляет symlink/var/lib/boot2docker на моей главной машине? –

-1

С докером 1.3 вам больше не нужно устанавливать вручную. Объемы должны работать должным образом, пока источник на хосте vm находится в вашем каталоге пользователя.

https://blog.docker.com/2014/10/docker-1-3-signed-images-process-injection-security-options-mac-shared-directories/

+3

Да , директор пользователя y автоматически устанавливается в/c/Users. Мне нужен дополнительный каталог в/c/shared. И я могу получить его, но мне всегда нужно его монтировать, даже если он добавлен в общие папки в vm, рядом с пользователями. – phazei

1

Я не могу заставить его работать после инструкций Ларри Кая. Я полагал, что я мог бы внести изменения в "C: \ Program Files \ Boot2Docker для Windows \ start.sh", добавьте ниже

eval "$(./boot2docker.exe shellinit 2>/dev/null | sed 's,\\,\\\\,g')"

ваша команда монтирования

eval "$(./boot2docker ssh 'sudo mount -t vboxsf c/shared /c/shared')"

Я также добавить чтобы запустить мой контейнер здесь.

eval "$(docker start KDP)"

1

Спасибо за вашу помощь в этом.Еще несколько флагов, которые я должен добавить, для того, чтобы новое крепление, чтобы быть доступным по boot2docker «Докер» пользователь:

sudo mount -t vboxsf -o umask=0022,gid=50,uid=1000 Ext-HD /Volumes/Ext-HD 
4

При использовании boot2docker (Windows), необходимо сделать следующее:

Сначала нужно создать общая папка для boot2docker VM:

"C:/Program Files/Oracle/VirtualBox/VBoxManage" sharedfolder add default -name some_shared_folder -hostpath /c/some/path/on/your/windows/box 

#Then make this folder automount 
docker-machine ssh 
vi /var/lib/boot2docker/profile 

Добавить следующее в конец файла профиля:

sudo mkdir /windows_share 
sudo mount -t vboxsf some_shared_folder /windows_share 

Restart докер-машина

docker-machine restart 

Убедитесь, что содержимое папки отображается в boot2docker:

docker-machine ssh 
ls -al /windows_share 

Теперь вы можете смонтировать папку либо с помощью докер запустить или Докер-Compose. Например:

docker run it --rm --volume /windows_share:/windows_share ubuntu /bin/bash 
ls -al /windows_share 

Если изменения в файле профиля будут потеряны после перезагрузки VM или Windows, выполните следующие действия:

1) Редактирование файла C: \ Program Files \ Docker Toolbox \ start.sh и закомментируйте следующую строку:

#line number 44 (or somewhere around that) 
yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}" 

#change the line above to: 
# yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}" 
Смежные вопросы