Obsah

LXC

LXC nebo také Linuxové Kontejnery je odlehčená forma virtualizace pro Linux. Hostitel a host sdílí stejný kernel, hostované systémy jsou jen omezeny pomocí cgroup a namespaců.

Vytvoření kontejneru

Nejjednodužší způsob vytvoření kontejneru je použití download šablony. Tak stáhne tarball s vaší distribucí a rozbalí ho na patřičné místo aniž by bylo třeba instalovat nějaké speciální nástroje na hostitelský systém. LXC nástroje v TurrisOS jsou upraveny tak aby stahovaly distribuce z našeho serveru kde jsme jich pro vás několik připravili. Jedná se tarbally stažené ze stránek daných distribucí s minimálními zásahy. Kontejner můžete vytvořit buď pomocí CLI nebo také pomocí webového rozhraní LuCI.

Pokud se rozhodnete pro CLI, použijte příkaz lxc-create -t download -n moje_vm. Po jeho spuštění vám položí několik otázek pomocí nichž si budete moci zvolit preferovanou distribuci a u některých i kterou verzi byste chtěli.

To samé můžete udělat i pomocí webového rozhraní LuCI. Najdete ho v nabídce LuCINástrojeLXC Containers. Jak můžete vidět na obrázku, možnosti jsou stejné - zvolíte si jméno pro váš kontejner a jakou distribuci byste rádi. Stisknutím tlačítka Create se váš kontejner začne vytvářet. To může chvíli trvat a bohužel na rozdíl od CLI zde není vidět žádný ukazatel postupu a ani se v současné verzi nedozvíte proč vytváření selhalo pokud by náhodou selhalo.

Všechny nově vytvořené kontejnery mají ve výchozím stavu jednu virtuální síťovou kartu která je připojená do vašeho LAN bridge. To znamená že z pohledu sítě se chová jako libovolný jiný počítač ve vaší lokální síti. Na routeru mu tak můžete přiřadit v DHCP statickou adresu, nastavit přesměrování portů nebo pro něj nastavit různá pravidla ve firewallu.

Používání kontejneru

První věc kterou byste měli udělat po stvoření kontejneru je nastavit si v něm silné heslo. V tom vám LuCI nepomůže a musíte to udělat z CLI. Zavoláním lxc-attach -n moje_vm dostanete root shell uvnitř kontejneru. Pomocí něj už heslo nastavíte spuštěním příkazu passwd. Dobrý nápad je zároveň se i ujistit, že síť je správně nastavena a například si povolit ssh, abyste příště mohli do kontejneru přímo. Jak nastavit síť a povolit ssh se dozvíte v dokumentaci od distribuce kterou jste si vybrali.

Spouštět a vypínat kontejner lze jak z LuCI, tak z CLI. V LuCI na to naleznete tlačítka a je tam i zobrazen aktuální stav kontejneru. Pokud se rozhodnete používat CLI, budou se vám hodit následující příkazy:

Spouštění kontejnerů při startu

Aby vám kontejner startoval automaticky i po bootu, musíte editovat soubor /etc/config/lxc-auto. Zde je příklad toho, jak tento soubor může vypadat:

config container
        option name moje_vm
        option timeout 60
        
config container
        option name moje_druhe_vm
        option timeout 120

Jak vidíte, tak může obsahovat configuraci pro více kontejnerů. Při startu systému bude každý kontejner, který tu je nastaven, spuštěn a při vypínání bude korektně ukončen. Nastavením volby timeout můžete ovlivnit kolik času kontejner dostane na to, aby se korektně ukončil sám než bude zabit. Výchozí hodnota pro toto nastavení je 300 vteřin.