- Vovich Antonovich
- 0
- 3673
- 214
Linux Containers (LXC) jsou lehkou virtualizační technologií a mají různá využití. Je součástí linuxového jádra a umožňuje vám napodobit jedno nebo více linuxových distribucí na jediného hostitele Linuxu. Přemýšlejte o tom jako o prostřední půdě mezi chrootem a plně virtualizačními technologiemi, jako jsou VirtualBox, KVM nebo Xen. Podobnou technologií přítomnou ve světě BSD jsou vězení FreeBSD.
Například stroj, na který píšu, je notebook se systémem Linux Mint 18, napájený procesorem Intel Atom a má skromnou 2 GB RAM. Přesto provozuji tři linuxové kontejnery, každý se spuštěnou instancí webového serveru Apache, aniž by to zasáhlo velký výkon. To by bylo nemyslitelné u tradičního virtuálního stroje, jako je VirtualBox. Takže pokud jste chtěli na vašem systému Linux spouštět více distribucí, měla by Linux Containers tuto práci udělat dobře.
Instalace a konfigurace linuxových kontejnerů
Připravujeme LXC na 64bitové Linux Mint 18. Instalační pokyny zde uvedené také fungují nezměněné na Ubuntu 16.04 a výše. Pokud používáte další distro, podívejte se na oficiální dokumentaci svého distro, pokud něco nefunguje podle očekávání. Předpokládá se také znalost příkazového řádku a obecné řešení problémů.
Předpoklady
Zde je několik věcí, které byste měli nastavit, abyste mohli začít používat více distribucí:
1. Nainstalujte LXC a další nezbytný software používající:
[sourcecode] sudo apt install lxc lxc-template uidmap [/ sourcecode]
2. Nyní musíte nakonfigurujte svůj profil. Chcete-li jej nastavit, zadejte následující příkazy:
[zdrojový kód] mkdir -p ~ / .config / lxc
echo "lxc.id_map = u 0 100000 65536" & amp; gt; ~ / .config / lxc / default.conf
echo "lxc.id_map = g 0 100000 65536" & amp; gt;& amp; gt; ~ / .config / lxc / default.conf
echo "lxc.network.type = veth" & amp; gt;& amp; gt; ~ / .config / lxc / default.conf
echo "lxc.network.link = lxcbr0" & amp; gt;& amp; gt; ~ / .config / lxc / default.conf
echo "$ USER veth lxcbr0 2" | sudo tee -a / etc / lxc / lxc-usernet [/ sourcecode]
3. Pak musíte nastavit uživatelská oprávnění jak následuje:
[zdrojový kód] sudo usermod -add-subuids 100000-165536 $ USER
sudo usermod -add-subgids 100000-165536 $ USER
sudo cgm vytvořit všechny uživatele
sudo cgm chown all user $ (id -u) $ (id -g)
cgm movepid všichni uživatelé $$ [/ sourcecode]
Nastavení kontejneru
Nyní, když máte nainstalovánu LXC Container společně s dalším nezbytným softwarem, postupujte podle následujících pokynů k nastavení kontejneru:
1. V tomto příkladu, nastavíme kontejner Ubuntu, pojmenováno ubu1
. Chcete-li to provést, proveďte následující příkaz:
[zdrojový kód] lxc-create - stažení šablony - jméno ubu1 [/ zdrojový kód]
2. Tady, -šablona
parametr řekne lxc stažení předkonfigurovaný obrázek z internetu, zatímco -název
Parametr určuje název kontejneru - ubu1
v tomto případě. Můžete použít libovolné jméno.
3. Nyní uvidíte seznam podporované distro obrázky:
4. Zadejte specifika distribuce které chcete nainstalovat. Nainstaluji 64bitovou verzi Ubuntu 16.04 (kódové označení xenial) zde:
5. Pokud si přejete nainstalujte obrázek neinteraktivně, následující příkaz dosáhne stejného výsledku jako výše:
[zdrojový kód] lxc-create -t stažení -n ubu1 - -dist ubuntu -vydání xenial -arch amd64 [/ sourcecode]
6. LXC nyní stáhne a nainstaluje minimální xeniální obraz Ubuntu do vašeho hostitelského systému. Stahování a instalace může chvíli trvat v závislosti na připojení k internetu a rychlosti vašeho počítače. Po instalaci, uvidíte obrazovku takto:
Nyní jste připraveni používat nově nastavený kontejner Ubuntu.
Používání více distribucí s Linuxovými kontejnery
Spuštění kontejneru
Spusťte svůj kontejner pomocí lxc-start
příkaz:
[sourcecode] lxc-start -n ubu1 -d [/ sourcecode]
Tady, -n
parametr Určuje název kontejneru které chcete začít (ubu1
v tomto případě) a -d
parametr dělá to běžet na pozadí.
Můžete ověřit, že se kontejner začal pomocí lxc-ls
příkaz:
[zdrojový kód] lxc-ls -f [/ zdrojový kód]
-F
parametr umožňuje ozdobný podávání zpráv. Zde vidíte, že ano dva kontejnery - jeden Debian (zastaven) a jeden Ubuntu (spuštěn).
Přístup a používání kontejneru
Můžeš přístup k konzoli kontejneru za použití lxc-attach
příkaz:
[sourcecode] lxc-attach -n ubu1 [/ sourcecode]
Nyní budete mít root shell na vašem kontejneru. Doporučujeme nastavit heslo pro uživatele root a vytvořit běžný uživatelský účet:
[zdrojový kód] passwd
adduser beebom [/ sourcecode]
Samozřejmě, vyměňte beebom s požadovaným uživatelským jménem. Poté můžete nainstalovat software a nakonfigurovat kontejner tak, jak byste to dělali na běžném systému. Například v kontejneru Debian nebo Ubuntu:
[sourcecode] apt install wget openssh-server htop tmux nano iptables [/ sourcecode]
Zastavení kontejneru
Po dokončení hraní s kontejnerem použijte buď výstup
příkaz k návratu do hostitelského systému. Nyní použijte lxc-stop
příkaz zastavit svůj kontejner:
[zdrojový kód] lxc-stop -n ubu1 [/ zdrojový kód]
Díky tomu bude kontejner čistě vypnut a nebude spotřebovávat žádné další prostředky ve vašem systému, s výjimkou místa na disku.
Klonování a snímky
Klony
Jakmile máte nainstalované programy v kontejneru a nakonfigurujete je podle svých představ, možná budete chtít vytvořit jednu nebo více kopií pro snadné zajištění. Můžete to udělat vytvořením klonovat, což je přesná replika kontejneru.
Například vytvořit klon ubu1
kontejner (řekněme to ubu2
), nejprve zastavte kontejner použitím lxc-stop
, pak použijte lxc-copy
příkaz:
[zdrojový kód] lxc-stop -n ubu1
lxc-copy -n ubu1 -N ubu2 [/ sourcecode]
Tady, -Možnost n určuje zdrojový kontejner, a -Volba N určuje název klonu. Na ověřit že byl kontejner naklonován, použijte lxc-ls
příkaz:
Snímky
Předpokládejme, že se chystáte provést nějaké potenciálně nebezpečné nebo obtížné zotavení ze změn v kontejneru, jako je například nová konfigurace webového serveru. Chcete-li minimalizovat poškození, můžete před provedením takové změny vytvořit snímek kontejneru. V případě, že se během konfigurace něco pokazí, můžete jednoduše zastavit kontejner a obnovit jej do předchozího pracovního stavu obnovením snímku.
Chcete-li vytvořit snímek, nejprve zastavte kontejner:
[zdrojový kód] lxc-stop -n ubu1 [/ zdrojový kód]
Pak, vytvořit snímek za použití lxc-snímek
příkaz:
[zdrojový kód] lxc-snímek -n ubu1 [/ zdrojový kód]
Tím vytvoříte snímek nazvaný snap0
. Budou vyvolány všechny následné snímky, které vytvoříte pomocí tohoto příkazu snap1, snap2, atd.
Poté můžete Start kontejner a proveďte požadované změny. Pokud se kdykoli chcete vrátit k vytvořenému snímku, stop kontejner a použít lxc-snímek
příkaz s -r
parametr na obnovit snímek:
[sourcecode] lxc-snapshot -r snap0 -n ubu1 [/ sourcecode]
Tím obnovíte snímek snap0
do ubu1
kontejner.
Automatické spuštění kontejnerů při spuštění
Při zavádění systému můžete vytvořit kontejner, například kontejner webového serveru, automaticky se spustit. Chcete-li to provést, přejděte na konfigurační soubor kontejneru, nacházející se v $ HOME / .local / share / lxc // config
, a přidejte následující řádky:
[zdrojový kód] lxc.start.auto = 1
lxc.start.delay = 5 [/ sourcecode]
První řádek určuje, že kontejner by měl být spuštěn při spuštění. Druhý říká systému počkejte 5 sekund před spuštěním dalšího kontejneru, pokud existuje.
Odstraňování problémů
Pokud máte potíže se spuštěním kontejnerů, zkuste nejprve spustit lxc-start
příkaz v Popředí režim. Například:
[sourcecode] lxc-start -n ubu1 -F [/ sourcecode]
Tohle bude ukázat chyby na aktuální konzolie, což je velmi užitečné při určování povahy problému.
Problémy se současným spuštěním více kontejnerů
Pokud se pokusíte spustit více kontejnerů najednou, můžete vidět chyby například „Dosažena kvóta“ nebo „Nepodařilo se vytvořit nakonfigurovanou síť“. Je to proto, že provozujete více síťových rozhraní, než která vám byla přidělena. Můžeš zvýšit počet síťových mostů, které může uživatel provozovat úpravou / etc / lxc / lxc-usernet
soubor jako vykořenit. Může to vypadat takto:
[sourcecode] # USERNAME TYPE BRIDGE COUNT
beebom veth lxcbr0 5 [/ sourcecode]
Můžeš na konci změňte číslo (V tomto příkladu 5) na větší počet, například 10. To vám umožní spustit až 10 kontejnerů najednou.
Další použití linuxových kontejnerů
Linuxové kontejnery mají různá použití. Můžete je použít jako lehké testovací boxy, například k vyzkoušení různých konfigurací webového nebo databázového serveru před jejich odevzdáním produkčnímu serveru. Dalším případem použití je otestovat, jak aplikace běží na různých verzích různých distribucí.
Můžete je také použít k izolaci aplikací, kterým nedůvěřujete - jakékoli poškození takové aplikace bude omezeno na vlastní kontejner a neovlivní hostitelský systém. Vezměte prosím na vědomí, že ačkoli je možné spouštět GUI aplikace v kontejneru, vyžaduje to značné množství času a úsilí, a proto se nedoporučuje. Pokud chcete spouštět aplikace GUI v karanténě, přečtěte si náš článek o tom, jak karanténní aplikace v systému Linux používat.
SEE ALSO: 7 nejlepších alternativ VirtualBox, které můžete použít
S Linuxovými kontejnery můžete současně spouštět více distribucí
Tím končí náš postup při spuštění více distribucí systému Linux na jednom počítači bez režie virtuálního počítače plné velikosti. Užitečnost této technologie je omezena pouze vaší kreativitou, takže neváhejte experimentovat a zjistit nové případy použití. Pokud máte potíže s nastavením kontejnerů, zeptejte se nás na otázku v sekci komentáře.