Jak spouštět více distros současně pomocí Linux kontejnerů

  • 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.




Zatím žádné komentáře

Gadget průvodce nákupem, technologie, na kterých záleží
Vydáváme podrobné návody na nákup zařízení, vytváříme zajímavé seznamy nejlepších produktů na trhu, pokrýváme novinky ze světa technologií