Я только что установил boot2docker на свой Mac. Как я могу поместить локальный каталог на моем Mac, чтобы он был доступен на всем пути к работающему контейнеру Docker? Спасибо за вашу помощь!
Boot2Docker на Mac - доступ к локальным файлам
Ответ 1
По состоянию на 16 октября 2014 года Docker легко поддерживает монтаж каталогов на пути /Users.
В блоге Docker:
В этом выпуске мы рассмотрим наиболее распространенную проблему: обмен каталогами между вашим Mac и вашими контейнерами. Используя Docker 1.3 с соответствующей версией boot2docker, тома, монтируемые на хост, теперь работают так, как вы ожидаете.
... Обратите внимание, что все еще есть некоторые ограничения: например, эта функция ограничена конфигурацией виртуальных ботов boot2dockers, не может управляться динамически и работает только для каталогов в /Users. Но мы получаем интересные вклады для улучшения управления томами, поэтому ожидаем, что эта область значительно улучшится в следующих нескольких выпусках.
Пример использования:
$ docker run -v /Users/bob/myapp/src:/src [...]
Ответ 2
boot2docker с другим ресурсом, кроме/Пользователи
см. https://github.com/boot2docker/boot2docker/issues/678.
Поделитесь своей папкой с VM:
VBoxManage sharedfolder add boot2docker-vm --name /tmp/Work --hostpath /CODE --automount
Основываясь на информации, найденной un bootscript.sh
, вы знаете, что VM запустит bootlocal.sh
script, который находится в /var/lib/boot2docker
, где данные сохраняются.
Добавить файл /var/lib/boot2docker/bootlocal.sh
#!/bin/sh
# bash is not available!
mkdir -p /CODE
mount -t vboxsf /tmp/Work /CODE
Затем chmod +x /var/lib/boot2docker/bootlocal.sh
и перезагрузите boot2docker-vm
vm.
Ответ 3
boot2docker вместе с дополнениями для VirtualBox
Как монтировать/Пользователи в boot2docker
tl; dr Создайте собственный пользовательский boot2docker.iso с помощью VirtualBox Guest Дополнения (см. ссылка) или загрузите http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.isoи сохраните его в ~/.boot2docker/boot2docker.iso.
Ответ 4
Как упоминал Леви, каталог /Users автоматически устанавливается. Это справедливо как в boot2docker, так и в докер-машине. Тем не менее, если вы хотите установить что-либо за пределы /Users, все текущие ответы касаются Boot2docker. Поскольку это теперь устарело в пользу докер-машины, это работает на докер-машине:
Сначала ssh в docker-machine vm и создадим папку, на которую будем сопоставлять:
docker-machine ssh $MACHINE_NAME "sudo mkdir -p \"$VOL_DIR\""
Теперь поделитесь папкой с VirtualBox:
WORKDIR=$(basename "$VOL_DIR")
vboxmanage sharedfolder add "$MACHINE_NAME" --name "$WORKDIR" --hostpath "$VOL_DIR" --transient
Наконец, ssh в докер-машину снова и смонтируйте папку, которую мы просто разделили:
docker-machine ssh $MACHINE_NAME "sudo mount -t vboxsf -o uid=\"$U\",gid=\"$G\" \"$WORKDIR\" \"$VOL_DIR\""
Примечание. Для UID и GID вы можете в принципе использовать любые целые числа, если они еще не приняты.
Это проверено как на докер-машине 0.4.1 и докер 1.8.3 на OS X El Capitan.