Jak spouštět více distribucí současně pomocí linuxových kontejnerů 13

Jak spouštět více distribucí současně pomocí linuxových kontejnerů

Linuxové kontejnery (LXC) jsou odlehčenou virtualizační technologií a mají různá použití. Je součástí linuxového jádra a umožňuje vám emulovat jednu nebo více linuxových distribucí na jednom hostiteli Linuxu. Berte to jako střední cestu mezi chrootem a plně virtualizačními technologiemi, jako je VirtualBox, KVM nebo Xen. Podobná technologie přítomná ve světě BSD je FreeBSD Jails.

Například stroj, na kterém píšu, je notebook s Linuxem Mint 18, poháněný procesorem Intel Atom a má skromné ​​2 GB RAM. Přesto používám tři linuxové kontejnery, každý s instancí spuštěného webového serveru Apache, bez velkého zásahu do výkonu. To by bylo nemyslitelné s tradičním virtuálním strojem, jako je VirtualBox. Pokud tedy chcete na svém linuxovém systému provozovat více distribucí, Linuxové kontejnery by to měly udělat dobře za vás.

Instalace a konfigurace linuxových kontejnerů

Nastavujeme LXC na Linux Mint 18 64-bit. Pokyny k instalaci zde uvedené budou také fungovat bez úprav na Ubuntu 16.04 a novějších. Pokud používáte jinou distribuci, podívejte se prosím do oficiální dokumentace vaší distribuce, 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 pomocí:

[sourcecode]sudo apt install lxc lxc-templates uidmap[/sourcecode]

2. Nyní musíte nakonfigurujte svůj profil. Pro jeho nastavení zadejte následující příkazy:

[sourcecode]mkdir -p ~/.config/lxc
echo „lxc.id_map = u 0 100000 65536“ > ~/.config/lxc/default.conf
echo „lxc.id_map = g 0 100000 65536“ >> ~/.config/lxc/default.conf
echo „lxc.network.type = veth“ >> ~/.config/lxc/default.conf
echo „lxc.network.link = lxcbr0“ >> ~/.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:

[sourcecode]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 všichni uživatelé $(id -u) $(id -g)
cgm movepid všichni uživatelé $$[/sourcecode]

Nastavení vašeho kontejneru

Nyní, když máte nainstalovaný kontejner LXC spolu s dalším nezbytným softwarem, zde jsou kroky k nastavení kontejneru:

1. V tomto příkladu nastavíme kontejner Ubuntus názvem ubu1. Chcete-li to provést, spusťte následující příkaz:

[sourcecode]lxc-create – stažení šablony – název ubu1[/sourcecode]

2. Zde parametr –template říká lxc to stažení předem nakonfigurovaný obrázek z internetu, zatímco parametr –name specifikuje název kontejneru – v tomto případě ubu1. Můžete použít libovolné jméno.

Ve vztahu :  Jak přizpůsobit ciferník na Wear OS

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:

install-ubuntu

5. Pokud si to přejete nainstalujte obraz neinteraktivněnásledující příkaz dosáhne stejného výsledku jako výše:

[sourcecode]lxc-create -t ​​download -n ubu1 — –dist ubuntu –release xenial –arch amd64[/sourcecode]

6. LXC nyní stáhne a nainstaluje minimální bitovou kopii Ubuntu xenial na váš hostitelský systém. Stažení a instalace může chvíli trvat v závislosti na vašem internetovém připojení a rychlosti vašeho počítače. Po instalacizobrazí se vám tato obrazovka:

ubuntu_installed

Nyní jste připraveni používat svůj nově nastavený kontejner Ubuntu.

Použití více distribucí s linuxovými kontejnery

Spouštění kontejneru

Spusťte kontejner pomocí příkazu lxc-start:

[sourcecode]lxc-start -n ubu1 -d[/sourcecode]

Zde je parametr -n určuje název kontejneru který chcete spustit (v tomto případě ubu1) a parametr -d umožňuje běh na pozadí.

Spuštění kontejneru můžete ověřit pomocí příkazu lxc-ls:

[sourcecode]lxc-ls -f[/sourcecode]

běžící kontejnery

Parametr -f umožňuje ozdobný hlášení. Tady vidíte, že mám dvě nádoby – jeden Debian (zastaven) a jeden Ubuntu (běžící).

Přístup a používání vašeho kontejneru

Můžeš přístup ke konzole kontejneru pomocí příkazu lxc-attach:

[sourcecode]lxc-attach -n ubu1[/sourcecode]

Nyní budete mít a kořenová skořápka na vašem kontejneru. Doporučuje se nastavit heslo pro uživatele root a vytvořit běžný uživatelský účet:

[sourcecode]passwd
adduser beebom[/sourcecode]

Samozřejmě vyměnit beebom s požadovaným uživatelským jménem. Poté můžete nainstalovat software a nakonfigurovat svůj kontejner jako 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í vašeho kontejneru

Až si s kontejnerem budete hrát, použijte buď příkaz exit pro návrat do hostitelského systému. Nyní použijte příkaz lxc-stop k zastavení vašeho kontejneru:

[sourcecode]lxc-stop -n ubu1[/sourcecode]

To způsobí, že se kontejner čistě vypne a nebude spotřebovávat žádné další prostředky ve vašem systému, kromě místa na disku.

Klonování a snímky

Klony

Jakmile nainstalujete programy do kontejneru a nakonfigurujete jej podle svých představ, možná budete chtít vytvořit jednu nebo více jeho kopií pro snadné zajišťování. Můžete to udělat vytvořením a kloncož je přesná replika kontejneru.

Chcete-li například vytvořit klon kontejneru ubu1 (říkejme mu ubu2), nejprve zastavte nádobu pomocí lxc-stop a poté použijte příkaz lxc-copy:

[sourcecode]lxc-stop -n ubu1

lxc-copy -n ubu1 -N ubu2[/sourcecode]

Tady, Volba -n určuje zdrojový kontejnera Volba -N určuje název klonu. Na ověřit že byl kontejner naklonován, použijte příkaz lxc-ls:

klon

Snímky

Předpokládejme, že se chystáte provést některé potenciálně nebezpečné nebo obtížně obnovitelné změny v kontejneru, jako je překonfigurování 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 kontejner jednoduše zastavit a obnovit jej do předchozího pracovního stavu obnovením snímku.

Ve vztahu :  Jak převést svůj telefon na přenosný Amazon Echo

Chcete-li vytvořit snímek, nejprve zastavte nádobu:

[sourcecode]lxc-stop -n ubu1[/sourcecode]

Pak, vytvořit snímek pomocí příkazu lxc-snapshot:

[sourcecode]lxc-snapshot -n ubu1[/sourcecode]

Tím se vytvoří snímek nazvaný snap0. Budou volány všechny následné snímky, které vytvoříte pomocí tohoto příkazu snap1, snap2atd.

Po tomto můžete Start kontejner a proveďte požadované změny. Pokud se budete chtít kdykoli vrátit ke snímku, který jste vytvořili, stop kontejner a pomocí příkazu lxc-snapshot s parametrem -r obnovit snímek:

[sourcecode]lxc-snapshot -r snap0 -n ubu1[/sourcecode]

Tím se obnoví snímek snap0 do kontejneru ubu1.

Automatické spouštění kontejnerů při spouštění

Můžete vytvořit kontejner, například kontejner webového serveru, který se spustí automaticky při spuštění systému. Chcete-li to provést, přejděte na stránku konfigurační soubor kontejnerukterý se nachází v $HOME/.local/share/lxc//config, a přidejte následující řádky:

[sourcecode]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 bootování. Druhý říká systému, aby 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ů, první věc, kterou můžete zkusit, je spustit příkaz lxc-start v Popředí režimu. Například:

[sourcecode]lxc-start -n ubu1 -F[/sourcecode]

Tohle bude zobrazí chyby na aktuální konzolie, což je velmi užitečné při identifikaci povahy problému.

Problémy s provozem více kontejnerů současně

Pokud se pokusíte spustit více kontejnerů najednou, můžete vidět chyby jako například „Dosažena kvóta“ nebo „Nepodařilo se vytvořit nakonfigurovanou síť“. Je to proto, že používáte více síťových rozhraní, než je vám přiděleno. Můžeš zvýšit počet síťových mostů, které může uživatel spustit úpravou souboru /etc/lxc/lxc-usernet jako vykořenit. Mohlo by to vypadat nějak takto:

[sourcecode]# POČET BRIDGE TYPU USERNAME
beebom veth lxcbr0 5[/sourcecode]

Můžeš změnit číslo na konci (v tomto příkladu 5), na větší číslo, 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 odlehčené testovací boxy, například k testování různých konfigurací webového nebo databázového serveru před jejich odesláním na produkční server. Dalším případem použití je testování toho, 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í, které taková aplikace způsobí, bude omezeno na její vlastní kontejner a neovlivní hostitelský systém. Upozorňujeme, že i když je možné spouštět aplikace GUI 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 aplikace v karanténě v Linuxu.

VIZ TAKÉ: 7 nejlepších alternativ VirtualBox, které můžete použít

Spusťte více distribucí současně s linuxovými kontejnery

Tím končí náš návod na provozování více linuxových distribucí na jednom počítači bez režie virtuálního stroje plné velikosti. Užitečnost této technologie je omezena pouze vaší kreativitou, takže neváhejte experimentovat a objevovat nové případy použití. Pokud máte potíže s nastavením kontejnerů, neváhejte nám položit otázku v sekci komentářů.