Глобальный файл для контейнеров LXC?

Есть ли способ сделать файл доступным из всех контейнеров LXC? У меня есть база данных SQLite, которой я хочу поделиться со всеми своими контейнерами, возможно ли это?


person Mugiwara    schedule 14.01.2014    source источник


Ответы (1)


Очень просто. Используйте привязку монтирования.

Вот пример.

Сначала создайте каталог для хранения файлов, которыми вы хотите поделиться на хост-компьютере.

mkdir /var/shared

Далее нам нужно создать каталог в контейнерах, к которому мы можем подключиться. Я использую местоположения по умолчанию в Ubuntu и имею 2 контейнера. Один с именем «test1», а другой с именем «test2».

mkdir /var/lib/lxc/test1/rootfs/var/shared
mkdir /var/lib/lxc/test2/rootfs/var/shared

mkdir /var/lib/lxc/<lxc container name here>/rootfs/var/shared

Вышеуказанные команды являются необязательными. Вы можете использовать любой подкаталог в контейнере. Я говорю "/var/shared".

Дальше делаем:

mount -o bind /var/shared /var/lib/lxc/test1/rootfs/var/shared
mount -o bind /var/shared /var/lib/lxc/test2/rootfs/var/shared

Чтобы сделать это постоянным при перезагрузке хоста, сделайте следующее.

# vi /etc/fstab

Добавьте следующее

/var/shared   /var/lib/lxc/test1/rootfs/var/shared   none   rw,bind   0   0
/var/shared   /var/lib/lxc/test2/rootfs/var/shared   none   rw,bind   0   0

Еще раз замените test1 и test2 контейнерами с правильными именами.

Все, что помещено в каталог /var/shared, будет доступно для всех контейнеров, у которых есть монтирование. Но поскольку UID и GID могут быть разными для каждого подконтейнера, вам может потребоваться chmod 666, чтобы что-то читалось/записывалось необходимыми пользователями каждого контейнера.

Пожалуйста, оставьте комментарий, если вам нужны дополнительные объяснения или помощь. -Откровенный

person Frank    schedule 10.08.2014