Глобален файл към LXC контейнери?

Има ли начин да направите файл достъпен от всички LXC контейнери? Имам SQLite база данни, която искам да споделя с всичките си контейнери, възможно ли е това?


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


Отговори (1)


Лесна работа. Използвайте mount bind.

Ето един пример.

Първо, създайте директория за съхранение на файловете, които искате да споделите на хост машината.

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