Ви можете призначити контейнеру додаткові пристрої , і це папки, доступні хосту.
$ 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
Наразі цілий підхід до безпеки для цього підходу для мене незрозумілий, але, здавалося б, він дещо «міститься» у віртуалізації. Практичний ризик залежить від того, як і чому ви будете використовувати контейнер. Дивіться технічні примітки на https://insights.ubuntu.com/2017/06/15/custom-user-mappings-in-lxd-containers
Далі зауважте, що цей підхід, ймовірно, працює найкраще, якщо ви зазвичай працюєте в контейнері як некорінний користувач, наприклад, якщо ви додаєте до ...
lxc exec zesty -- su --login ubuntu
lxc config device add confexample sharedtmp disk path=/tmp source=/tmp/shared
. Але, дивлячись на каталог контейнера, власник і група файлів у ньому встановлені на "none" і "nogroup", і кріплення читається тільки.