Я экспериментировал с LXC / LXD на Ubuntu 14.04, и все это отлично работает. Мне просто нужно выяснить, как получить общие каталоги, работающие между моей машиной и контейнером, чтобы я мог разделить Virtualbox раз и навсегда.
Я видел эту страницу: https: //wiki.gentoo. org / wiki / LXD
Что дает инструкции, но я просто продолжаю получать ошибки.
Кто-нибудь знает какие-либо простые, четкие инструкции, чтобы заставить это работать? Любая помощь очень ценится.
Инструкции по https://wiki.gentoo.org/wiki/LXD, которые вы упоминаете, являются правильными, но могут потребоваться немного больше объяснений.
На хосте вы сначала проверяете право собственности на каталог, в котором хранятся данные контейнера. Запустите
sudo ls -l /var/lib/lxd/containers
и проверьте владельца контейнера, с которым вы хотите разделить каталог. В моем случае uid и gid оба были 100000.
Затем используйте их, чтобы изменить право собственности на каталог, который вы хотите предоставить:
sudo chown 100000:100000 /tmp/share_on_host
Поделитесь каталог с контейнером так, как вы указали в своем комментарии:
lxc config device add mycontainer sharedtmp disk \
path=/tmp/share_on_guest source=/tmp/share_on_host
Теперь в контейнере вы увидите, что каталог /tmp/share_on_guest (я бы не советовал монтировать ваш каталог как [ f7], потому что это используется системой для других вещей и имеет специальные разрешения) принадлежит root. Здесь вы можете использовать chown в контейнере, чтобы изменить право собственности на соответствующие uid и gid для вашего пользователя в контейнере.
В качестве побочного примечания, после изменения владельца в контейнере, например, пользователь с uid 33 вы увидите на хосте, что uid теперь 100033, что делает полный смысл.
Вы можете назначить дополнительные устройства в контейнер, и это могут быть папки, доступные для хоста.
$ lxc config ## display help
...
lxc config device add [<remote>:]<container> <device> <type> [key=value...]
Add a device to a container.
...
Обратите внимание, что <device> - это просто произвольное имя, которое вы назначаете, которое будет использоваться как идентификатор для последующего управления устройством.
Например, для монтирования главной папки «./host» в качестве «/ mnt / host» в контейнере ...
lxc config device add mycontainer vartest disk source=$(pwd)/host path=/mnt/host
Остается одна проблема: если вы хотите, чтобы эта папка была доступна для записи как хостом, так и контейнером, необходимо соответствующим образом настроить права собственности и разрешения. Это усложняется режимом по умолчанию LXD, который виртуализирует числовые диапазоны для значений пользователя и группы id. Однако есть простое решение: обходите эту виртуализацию, настроив контейнер на запуск с эквивалентами хоста ...
lxc config set <container> security.privileged true
devices
Обратите внимание, что этот подход, вероятно, лучше всего работает, если вы обычно работаете в контейнере как пользователь без полномочий root, например, если вы прикрепляетесь с помощью ...
lxc exec zesty -- su --login ubuntu
Дополнительные замечания по конфигурации: https: // help.ubuntu.com/lts/serverguide/lxd.html Ниже приведен обновленный ответ на этот вопрос.
Установите контейнер хоста «/ var / www» как «/ var / test» в контейнере.
lxc config device добавить mycontainer vartest disk source = / var / www path = / var / test