Odporúčaná, 2024

Redakcia Choice

Ako spustiť viac Distros Simultaneosly pomocou kontajnerov Linux

Linux kontajnery (LXC) sú ľahká virtualizačná technológia a majú rôzne využitie. Je súčasťou jadra Linuxu a môže vám umožniť napodobniť jednu alebo viacero linuxových distribúcií na jedinom hostiteľovi Linuxu. Myslite na to ako na strednú pôdu medzi chrootom a plnohodnotnými virtualizačnými technológiami, ako je VirtualBox, KVM alebo Xen. Podobná technológia, ktorá sa nachádza vo svete BSD, je FreeBSD Jails.

Napríklad počítač, na ktorom píšem, je prenosný počítač so systémom Linux Mint 18, ktorý je napájaný procesorom Intel Atom a má skromné ​​2 GB pamäte RAM. Napriek tomu používam tri linuxové kontajnery, každý s inštanciou webového servera Apache, bez veľkého výkonu. To by bolo nemysliteľné s tradičným virtuálnym strojom, ako je VirtualBox. Takže, ak ste chceli spustiť viac distribučných súprav vo vašom systéme Linux, Linux Containers by mal pre vás prácu urobiť v pohode.

Inštalácia a konfigurácia kontajnerov Linux

Nastavujeme LXC na Linuxe Mint 18 64-bit. Inštalačné pokyny, ktoré tu nájdete, budú tiež fungovať bez úpravy v Ubuntu 16.04 a vyššie. Ak používate inú distribúciu, pozrite si oficiálnu dokumentáciu vášho distribútora, ak niečo funguje podľa očakávania. Objaví sa tiež znalosť príkazového riadku a všeobecné riešenie problémov.

predpoklady

Tu je niekoľko vecí, ktoré by ste mali nastaviť, aby ste mohli začať používať viaceré distribučné súbory:

1. Nainštalujte softvér LXC a iný predpokladaný softvér pomocou:

[zdrojový kód] sudo apt nainštalovať lxc lxc-šablóny uidmap [/ sourcecode]

2. Teraz musíte nakonfigurovať svoj profil . Zadajte nasledujúce príkazy na nastavenie:

[zdrojový kód] mkdir -p ~ / .config / lxc
echo "lxc.id_map = u 0 100000 65536" & amp; ~ / .Config / LXC / default.conf
echo "lxc.id_map = g 0 100000 65536" & amp; ~ / .Config / LXC / default.conf
echo "lxc.network.type = veth" & amp; gt; gt; ~ / .Config / LXC / default.conf
echo "lxc.network.link = lxcbr0" & amp; ~ / .Config / LXC / default.conf
echo "$ USER veth lxcbr0 2" sudo tee -a / etc / lxc / lxc-usernet [/ sourcecode]

3. Potom musíte nastaviť používateľské oprávnenia nasledovne:

[zdrojový kód] sudo usermod -add-subuids 100000-165536 $ USER
sudo usermod -add-subgids 100000-165536 $ USER

sudo cgm vytvoriť všetkých používateľov
sudo cgm chown všetky používateľské $ (id -u) $ (id -g)
cgm pohybovať všetci používatelia $$ [/ sourcecode]

Nastavenie kontajnera

Teraz, keď máte nainštalovaný kontajner LXC spolu s iným predpokladaným softvérom, postupujte podľa pokynov na nastavenie kontajnera:

1. V tomto príklade vytvoríme kontajner Ubuntu s názvom ubu1 . Ak to chcete urobiť, spustite nasledujúci príkaz:

[zdrojový kód] lxc-create-template download -name ubu1 [/ sourcecode]

2. Parameter –template hovorí, že lxc načíta prednastavený obrázok z internetu, zatiaľ čo parameter ubu1 určuje názov kontajnera - ubu1 v tomto prípade. Môžete použiť ľubovoľné meno, ktoré sa vám páči.

3. Zobrazí sa vám zoznam podporovaných diskových obrazov :

4. Zadajte špecifiká distribúcie, ktorú chcete nainštalovať. Inštalujem 64-bitovú verziu Ubuntu 16.04 (kódové meno xenial) tu:

5. Ak chcete obrázok intuitívne inštalovať, nasledujúci príkaz dosahuje rovnaký výsledok ako vyššie uvedený:

[zdrojový kód] lxc-create -t ​​stiahnuť -n ubu1 - -dist ubuntu -release xenial -arch amd64 [/ sourcecode]

6. LXC teraz na svojom hostiteľskom systéme stiahnuť a nainštalovať minimálny xenuálny obrázok Ubuntu. Sťahovanie a inštalácia môžu trvať trochu času v závislosti od pripojenia k internetu a rýchlosti počítača. Po inštalácii sa zobrazí obrazovka takto:

Teraz ste pripravení používať novo nastavený kontajner Ubuntu.

Používanie viacerých distribútorov s kontajnermi Linux

Spustenie kontajnera

Spustite kontajner pomocou príkazu lxc-start :

[zdrojový kód] lxc-start -n ubu1 -d [/ sourcecode]

Parameter -n určuje názov kontajnera, ktorý chcete spustiť ( ubu1 v tomto prípade) a parametr -d ho spúšťa na pozadí .

Môžete si overiť, či kontajner začal pomocou príkazu lxc-ls :

[zdrojový kód] lxc-ls -f [/ sourcecode]

Parameter -f umožňuje fiktívne hlásenie. Tu vidíte, že mám dva kontajnery - jeden Debian (zastavený) a jeden Ubuntu (beží).

Prístup a používanie Vášho kontajnera

Konzolu kontajnera môžete získať pomocou príkazu lxc-attach :

[zdrojový kód] lxc-attach -n ubu1 [/ sourcecode]

Na kontajneri budete teraz mať koreňový shell . Odporúčame vám nastaviť heslo pre používateľa root a vytvoriť bežný používateľský účet :

[Zdrojové kódy] passwd
adduser beebom [/ sourcecode]

Samozrejme, nahraďte beebom používateľským menom, ktoré chcete. Potom môžete nainštalovať softvér a nakonfigurovať kontajner tak, ako by ste robili v bežnom systéme. Napríklad v kontajneri Debian alebo Ubuntu:

[sourcecode] apt nainštalovať wget openssh-server htop tmux nano iptables [/ sourcecode]

Zastavenie kontajnera

Keď skončíte hraním s kontajnerom, buď sa pomocou príkazu exit vrátite do hostiteľského systému . Teraz použite príkaz lxc-stop na zastavenie kontajnera :

[zdrojový kód] lxc-stop -n ubu1 [/ sourcecode]

To spôsobí, že kontajner sa vypne čistým spôsobom a nebude mať na vašom systéme žiadne ďalšie zdroje okrem miesta na disku.

Klonovanie a snímky

klony

Po nainštalovaní programov v kontajneri a nakonfigurovaní podľa vašich predstáv by ste si mohli vytvoriť jednu alebo viacero kópií pre jednoduché poskytovanie. Môžete to urobiť vytvorením klonu, ktorý je presnou replikou kontajnera.

Napríklad, ak chcete vytvoriť klon kontajnera ubu1 (nazývame ho ubu2 ), najprv zastavte kontajner pomocou lxc-stop a potom použite príkaz lxc-copy :

[zdrojový kód] lxc-stop -n ubu

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

Tu voľba -n určuje zdrojový kontajner a voľba -N špecifikuje názov klonu . Ak chcete skontrolovať, či bol kontajner klonovaný, použite príkaz lxc-ls :

snímky

Predpokladajme, že sa chystáte urobiť niektoré potenciálne nebezpečné alebo ťažko sa obnoviť zo zmien v kontajneri, napríklad pri rekonfigurovaní webového servera. Ak chcete minimalizovať poškodenie, pred vytvorením takejto zmeny si môžete vytvoriť snímku kontajnera. Ak sa počas konfigurácie niečo pokazí, môžete jednoducho zastaviť kontajner a vrátiť ho do predchádzajúceho pracovného stavu obnovením snímky.

Ak chcete vytvoriť snímku, najprv zastavte kontajner :

[zdrojový kód] lxc-stop -n ubu1 [/ sourcecode]

Potom vytvorte snímku pomocou príkazu lxc-snapshot :

[zdrojový kód] lxc-snapshot -n ubu1 [/ sourcecode]

Tým sa vytvorí snímka s názvom snap0 . Všetky nasledujúce snímky, ktoré vytvoríte pomocou tohto príkazu, sa budú nazývať snap1, snap2 atď.

Potom môžete spustiť kontajner a vykonať požadované zmeny. Ak sa kedykoľvek chcete vrátiť k vytvorenej snímke, zastavte kontajner a pomocou príkazu lxc-snapshot pomocou parametra -r obnovte snímku :

[zdrojový kód] lxc-snapshot -r snap0 -n ubu1 [/ sourcecode]

Tým sa obnoví snap0 snímku do kontajnera ubu1 .

Automatické spustenie kontajnerov pri zavádzaní

Môžete vytvoriť kontajner, napríklad kontajner webového servera, spustiť automaticky pri zavádzaní systému. Za týmto účelom prejdite do konfiguračného súboru kontajnera umiestneného v súbore $HOME/.local/share/lxc//config a pridajte nasledujúce riadky :

[zdrojový kód] lxc.start.auto = 1
lxc.start.delay = 5 [/ sourcecode]

Prvý riadok určuje, že kontajner by mal byť spustený pri štarte. Druhá informuje systém počkat 5 sekúnd pred spustením ďalšieho kontajnera, ak existuje.

Riešenie problémov

Ak máte problémy s štartovaním kontajnerov, najskôr sa pokúste lxc-start príkaz lxc-start v popredí . Napríklad:

[zdrojový kód] lxc-start -n ubu1 -F [/ sourcecode]

Zobrazia sa vám chyby na aktuálnej konzole, čo je veľmi užitočné pri zisťovaní povahy problému.

Problémy so súčasným behom viacerých kontajnerov

Ak sa pokúsite spustiť viacero kontajnerov naraz, môžu sa zobraziť chyby, ako napríklad "Kvóta dosiahla" alebo "Nepodarilo sa vytvoriť nakonfigurovanú sieť". Dôvodom je to, že používate viac sieťových rozhraní, ako vám boli pridelené. Môžete zvýšiť počet sieťových mostov, ktoré používateľ môže spustiť úpravou súboru /etc/lxc/lxc-usernet ako root . Môže to vyzerať takto:

[zdrojový kód] # USERNAME TYPE BRIDGE COUNT
beebom veth lxcbr0 5 [/ sourcecode]

Môžete zmeniť číslo na konci (5 v tomto príklade) na väčšie číslo, ako je 10. To vám umožní spustiť až 10 kontajnerov naraz.

Iné používanie kontajnerov Linux

Linux kontajnery majú rôzne využitie. Môžete ich použiť ako ľahké testovacie boxy, napríklad na otestovanie rôznych konfigurácií webového alebo databázového servera predtým, ako ich odovzdáte na výrobný server. Ďalším prípadom použitia je testovanie, ako aplikácia beží na rôznych verziách rôznych distribučných súborov.

Môžete ich tiež použiť na izoláciu aplikácií, ktorým nedôverujete - akékoľvek poškodenie takejto aplikácie bude obmedzené na vlastný kontajner a nebude mať vplyv na hostiteľský systém. Upozorňujeme, že zatiaľ čo je možné spustiť aplikácie GUI v kontajneri, vyžaduje to značné množstvo času a úsilia, a preto sa neodporúča. Ak chcete spustiť aplikácie GUI v karanténe, prečítajte si článok o aplikáciách aplikácie Sandbox v systéme Linux.

Spustite viaceré distribúcie súčasne s kontajnermi Linux

Takto končí náš How-To na spúšťaní viacerých distribučných systémov Linux na jednom počítači, bez réžie virtuálneho stroja v plnej veľkosti. Užitočnosť tejto technológie je obmedzená len tvojím kreativitou, takže môžete experimentovať a zistiť nové prípady použitia. Ak máte problémy s nastavením kontajnerov, neváhajte nás položiť otázku v sekcii komentárov.

Top