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

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

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, чтобы иметь возможность считывать / записывать данные необходимыми пользователями каждого контейнера.

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

Другие вопросы по тегам