LXC Kontejnery
LXC je typ virtualizace, kde jednotlivé virtuální stroje sdílí jádro operačního systému. LXC se pak postará o izolaci a případně omezení systémových prostředků pro jednotlivé virtuální stroje.
Instalací linuxového kontejneru na routeru vytvoříme v síti virtuální počítač, který může být určený pro některé služby – např. pyLoad downloader, Transmission na stahování torrentů, místní webserver, atd.
Hlavní důvody pro vytvoření a provozování kontejneru jsou hlavně možnost využití jiné linuxové distribuce než OpenWRT (systém z něhož je odvozen Turris OS), např. Debian nebo Ubuntu. Některý software by se přímo na Turris rozběhával těžko, kdežto např. v Ubuntu je to bezproblémové (příklad – pyLoad běžící v Pythonu). Dále tímto oddělíme systém na routeru a systém kontejneru, takže pokud se něco “nepovede” na routeru, kontejner zůstává nedotčen (a to I kdyby došlo k resetu routeru do továrního nastavení), což platí I obráceně – krach systému v kontejneru router neovlivní.
Důležité – kontejner je potřeba instalovat na externí úložiště a nesmí se provozovat na interní paměti routeru – ta takovou nálož dlouho nevydrží. Jak toto nastavit je popsáno v článku vložení a nastavení disku.
Takže pokud to máme vyřešené můžeme se vrhnout na instalaci prvního kontejneru. Nejdříve je potřeba doinstalovat příslušné balíčky. V reForis → Správa Balíčků → Baličky zaškrtnout Nástroje pro LXC a dole na stránce kliknout na Uložit. Až bude hotovo, zobrazí se v pravém horním rohu notifikace. Poté raději restartovat router.

Vytvoření kontejneru se provádí v LuCI → Služby → Kontejnery LXC. Zde vytvoříme nový kontejner. Název ideálně jako uživatel, pro kterého budou určeny služby v kontejneru, nebo podle účelu. Zde si vytvoříme kontejner pro uživatele user1 - kontejner pro pyLoad a Transmission. Šablona - jaká linuxová distribuce. Pro pyLoad a Transmission dávám Debian Bullseye. A kliknu na Vytvořit. Měl by se mi zobrazit kontejner s názvem user1 v sekci Dostupné kontejnery.

Nyní už různá nastavení kontejneru, většina se řeší přes terminál.
ssh root@192.168.1.1
Nejdříve nastavím, aby se mi kontejner pouštěl při startu a edituji soubor /etc/config/lxc-auto:
vim /etc/config/lxc-auto
a vložím si řádky. Druhý a třetí řádek odděluji tab:
config container
option name user1
option timeout 10
Teď už si spustíme kontejner:
lxc-start -n user1
Vlezeme do kontejneru:
lxc-attach -n user1
Nejdříve si změním to ošklivé LXCNAME – tedy název počítače:
vim /etc/hostname
Zde místo LXC_NAME napíšu user1
Pak ještě změna v dalším souboru:
vim /etc/hosts
kde v prvním řádku místo LXC_NAME dám také user1
Teď si ještě musím v kontejneru vytvořit adresáře, kam si namountuju složky z Turris OS, abych mohl ukádat stahované soubory na disk:
mkdir /mnt/downloads /mnt/torrents
To je pro začátek kontejneru vše, kontejner opustíme:
exit
A jsme v terminálu zase na routeru. Teď je na řadě config našeho kontejneru, kde si nastavíme mountování složek:
vim /srv/lxc/user1/config
Na konec sekce # Container specific configuration vložím řádky (předpokládá adresářovou strukturu z předchozích návodů):
lxc.mount.entry = /mnt/ssd/users/user1/Downloads mnt/downloads none bind 0 0
lxc.mount.entry = /mnt/ssd/users/user1/Torrents mnt/torrents none bind 0 0
Je načase restartovat router, abychom zkontrolovali že se nám kontejner pustí při startu, že bude mít námi navolené jméno počítače a že se mu namountují složky.
reboot
Nastavení statické IP
Pokud na náš kontejner (v síti je vidět jako samostatný počítač) budeme chtít přistupovat ze sítě (což skoro určitě budeme), je potřeba nastavit statickou IP adresu, aby nám např. při restartu routeru DHCP nepřidělilo kontejneru jinou IP adresu. V LuCI → Síť → DHCP a DNS pod Nastevení serveru máme taby, klikneme na Statické zápujčky.
V sekci Aktivní propůjčené DHCP adresy (leases) bychom měli vidět náš počítač user1. Zde je vidět i MAC adresa. Klikneme na Přidat.
Vyběhne na nás formulář.
Název počítače: user1
MAC-adresa: vybereme ze seznamu - už by jsme měli mít na výběr řádek kde bude jméno počítače našeho kontejneru - user1.
IPv4-adresa by už nám měla naskočit automaticky. Pokud chceme přiřadit jinou, můžeme ji úplně na konci seznamu vepsat.
Doba zapujčení: infinite

A dáme Uložit a poté dole na stránce Uložit a použít. Pokud jsme zadali jinou IP adresu, je lepší resetovat kontejner a tím se nám přiřadí nová IP.
Nastavení lokálních DNS
Jestli jsme udělali vše správne, máme hotovo. Když budeme ke kontejneru či jiným počítačům v síti chtít přistupovat pomocí jména a ne jen ip adresy, musíme si toto nastavit. V reForis → Nastavení sítě → DNS musíme mít nastaveno Registrovat DHCP klienty v DNS. Musíme si zvolit Doménu DHCP klientů v DNS. Já používám xxx, dobře se to pamatuje, nehrozí konflikty a nechaosí prohlížeče. Dole dáme Uložit. Teď by měl být náš kontejner dostupný na user1.xxx
