Има ли начин да направите файл достъпен от всички LXC контейнери? Имам SQLite база данни, която искам да споделя с всичките си контейнери, възможно ли е това?
Глобален файл към LXC контейнери?
Отговори (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, за да накарате нещата да се четат/записват от необходимите потребители на всеки контейнер.
Моля, оставете коментар, ако имате нужда от допълнително обяснение или помощ. - Франк