Ieteicams, 2020

Redaktora Izvēle

Kā palaist vairākus Distros Simultaneosly, izmantojot Linux konteinerus

Linux konteineri (LXC) ir viegla virtualizācijas tehnoloģija, un tiem ir dažādi izmantošanas veidi. Tā ir daļa no Linux kodola, un tā var ļaut jums sacensties ar vienu vai vairākiem Linux apgabaliem vienā Linux uzņēmējā. Domājiet par to kā vidusceļu starp chroot un pilnu virtualizācijas tehnoloģiju, piemēram, VirtualBox, KVM vai Xen. Līdzīga tehnoloģija, kas pastāv BSD pasaulē, ir FreeBSD Jails.

Piemēram, mašīna, kuru rakstu, ir klēpjdators, kurā darbojas Linux Mint 18, ko darbina Intel Atom procesors, un tam ir mazs 2 GB RAM. Tomēr man ir trīs Linux konteineri, katrs ar Apache tīmekļa servera instanci, kas darbojas bez lieliem veiktspējas rādītājiem. Tas būtu neiedomājami ar tradicionālo virtuālo mašīnu, piemēram, VirtualBox. Tātad, ja jums ir bijusi vēlme palaist vairākus distros jūsu Linux sistēmā, Linux Containers būtu jādara darbs jums tikai naudas sodu.

Linux konteineru instalēšana un konfigurēšana

Mēs izveidojam LXC uz Linux Mint 18 64 bitu. Šeit sniegtie uzstādīšanas norādījumi arī darbosies nemainīti Ubuntu 16.04 un jaunākos. Ja izmantojat citu distro, lūdzu, skatiet savu dispečera oficiālo dokumentāciju, ja kaut kas nedarbojas, kā paredzēts. Tiek pieņemts arī komandrindas pārzināšana un vispārēja traucējummeklēšana.

Priekšnoteikumi

Tālāk ir norādītas dažas lietas, kas jāizveido, lai sāktu izmantot vairākus distros:

1. Instalējiet LXC un citu priekšnosacījumu programmatūru, izmantojot:

[sourcecode] sudo apt instalēt lxc lxc-templates uidmap [/ sourcecode]

2. Tagad jums ir jākonfigurē profils . Ievadiet šādas komandas, lai to iestatītu:

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

3. Pēc tam lietotāja atļaujas jāiestata šādi:

[sourcecode] sudo usermod –add-subuids 100000-165536 $ USER
sudo usermod –add-subgids 100000-165536 $ USER

sudo cgm izveido visu lietotāju
sudo cgm chown visu lietotāju $ (id -u) $ (id -g)
cgm movepid visi lietotāji $ $ [/ sourcecode]

Konteinera uzstādīšana

Tagad, kad LXC konteiners ir uzstādīts kopā ar citu priekšnosacījumu programmatūru, šeit ir norādījumi, kā iestatīt konteineru:

1. Šajā piemērā mēs izveidosim Ubuntu konteineru ar nosaukumu ubu1 . Lai to izdarītu, izpildiet šādu komandu:

[sourcecode] lxc-create -template download –name ubu1 [/ sourcecode]

2. Šeit parametrs par –template norāda lxc, lai lejupielādētu iepriekš konfigurētu attēlu no interneta, bet parametrs –name šajā gadījumā norāda konteinera nosaukumu - ubu1 . Jūs varat izmantot jebkuru no jums vēlamajiem nosaukumiem.

3. Tagad jūs redzēsiet atbalstīto distro attēlu sarakstu :

4. Ievadiet tā izplatīšanas specifiku, kuru vēlaties instalēt. Šeit instalēšu Ubuntu 16.04 64 bitu versiju (koda nosaukums xenial):

5. Ja nevēlaties interaktīvi instalēt attēlu, šāda komanda sasniedz tādu pašu rezultātu kā iepriekš:

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

6. LXC tagad lejupielādēs un instalēs minimālu Ubuntu xenial attēlu jūsu uzņēmējā sistēmā. Atkarībā no interneta savienojuma un datora ātruma lejupielāde un instalēšana var aizņemt nedaudz laika. Pēc instalēšanas jūs redzēsiet šādu ekrānu:

Tagad esat gatavs izmantot savu jaunizveidoto Ubuntu konteineru.

Vairāku Distros lietošana ar Linux konteineriem

Konteinera palaišana

Sāciet savu konteineru, izmantojot komandu lxc-start :

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

Šeit parametrs -n norāda tā konteinera nosaukumu, kuru vēlaties sākt ( ubu1 šajā gadījumā), un parametrs -d padara to ubu1 fonā .

Jūs varat pārbaudīt, vai konteiners sākts, izmantojot komandu lxc-ls :

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

-f parametrs ļauj iedomāties ziņojumus. Šeit jūs varat redzēt, ka man ir divi konteineri - viens Debian (apstādināts) un viens Ubuntu (darbojas).

Piekļuve konteineram un tā lietošana

Jūs varat piekļūt konteinera konsolei, izmantojot komandu lxc-attach :

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

Tagad jūsu konteinerā būs saknes apvalks . Ieteicams iestatīt paroli root lietotājam un izveidot regulāru lietotāja kontu :

[sourcecode] passwd
adduser beebom [/ sourcecode]

Protams, nomainiet beebom ar vajadzīgo lietotājvārdu. Pēc tam varat instalēt programmatūru un konfigurēt konteineru, kā jūs to darītu, izmantojot parasto sistēmu. Piemēram, Debian vai Ubuntu konteinerā:

[sourcecode] apt instalēt wget openssh-server htop tmux nano iptables [/ sourcecode]

Konteinera apturēšana

Kad esat pabeidzis spēlēt ar konteineru, vai nu izmantojiet exit komandu, lai atgrieztos uzņēmējā sistēmā . Tagad lietojiet lxc-stop komandu, lai apturētu savu konteineru :

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

Tas padara tvertni tīru, un tas neuzņems jūsu sistēmā vairāk resursu, izņemot diska vietu.

Klonēšana un momentuzņēmumi

Kloni

Kad esat instalējis programmas konteinerā un konfigurējis to pēc savas izvēles, iespējams, vēlēsities izveidot vienu vai vairākas tā kopijas, lai nodrošinātu vieglu nodrošinājumu. To var izdarīt, izveidojot klonu, kas ir precīza konteinera kopija.

Piemēram, lai izveidotu ubu1 konteinera klonu (sauksim to par ubu2 ), vispirms apstādiniet konteineru, izmantojot lxc-stop, un pēc tam izmantojiet komandu lxc-copy :

[sourcecode] lxc-stop -n ubu

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

Šeit -n opcija norāda avota konteineru, un -N opcija norāda klona nosaukumu . Lai pārbaudītu, vai konteiners ir klonēts, izmantojiet komandu lxc-ls :

Snapshots

Pieņemsim, ka jūs gatavojaties veikt dažus potenciāli bīstamus vai grūti atjaunojamus konteinerus, piemēram, pārkonfigurējot tīmekļa serveri. Lai samazinātu bojājumus, pirms šādas izmaiņas varat izveidot konteinera momentuzņēmumu. Ja konfigurācijas laikā kaut kas noiet greizi, varat vienkārši apturēt konteineru un atgūt to iepriekšējā darba stāvoklī, atjaunojot momentuzņēmumu.

Lai izveidotu momentuzņēmumu, vispirms apturiet konteineru :

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

Pēc tam izveidojiet momentuzņēmumu, izmantojot komandu lxc-snapshot :

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

Tas rada momentuzņēmumu, ko sauc par snap0 . Visi turpmākie momentuzņēmumi, ko izveidojat, izmantojot šo komandu, tiks saukti par snap1, snap2 utt.

Pēc tam varat sākt konteineru un veikt vajadzīgās izmaiņas. Ja jebkurā laikā vēlaties atgriezties pie izveidotā momentuzņēmuma, apturiet konteineru un izmantojiet komandu lxc-snapshot ar parametru -r lai atjaunotu momentuzņēmumu :

[sourcecode] lxc-momentuzņēmums -r snap0 -n ubu1 [/ sourcecode]

Tas atjaunos momentuzņēmuma snap0 uz ubu1 konteineru.

Automātiski palaidiet konteinerus sāknēšanas laikā

Jūs varat izveidot konteineru, piemēram, tīmekļa servera konteineru, automātiski startējot, kad sākat sistēmu. Lai to izdarītu, dodieties uz konteinera konfigurācijas failu, kas atrodas $HOME/.local/share/lxc//config, un pievienojiet šādas rindas :

[sourcecode] lxc.start.auto = 1
lxc.start.delay = 5 [/ sourcecode]

Pirmajā rindā ir norādīts, ka tvertne ir jāsāk sāknēšanas laikā. Otrā sistēma liek sistēmai gaidīt 5 sekundes pirms nākamā konteinera sākšanas, ja tāds ir.

Problēmu novēršana

Ja jums ir problēmas, uzsākot konteinerus, vispirms mēģiniet palaist lxc-start komandu priekšplānā . Piemēram:

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

Tas parādīs kļūdas pašreizējā konsolē, kas ir ļoti noderīga problēmas rakstura identificēšanai.

Problēmas ar vairāku konteineru darbību vienlaicīgi

Ja mēģināt uzreiz izpildīt vairākus konteinerus, iespējams, redzēsit kļūdas, piemēram, “Kvota ir sasniegta” vai “neizdevās izveidot konfigurētu tīklu”. Tas ir tāpēc, ka jūs izmantojat vairāk tīkla saskarņu nekā jums piešķirtas. Varat palielināt tīkla tiltu skaitu, ko lietotājs var palaist, modificējot /etc/lxc/lxc-usernet failu kā root . Tas varētu izskatīties šādi:

[sourcecode] # USERNAME TYPE BRIDGE COUNT
beebom veth lxcbr0 5 [/ sourcecode]

Jūs varat mainīt numuru beigās (5 šajā piemērā), uz lielāku skaitu, piemēram, 10. Tas ļaus jums palaist līdz pat 10 konteineriem uzreiz.

Citi Linux konteineru izmantošanas veidi

Linux konteineriem ir dažādi izmantošanas veidi. Jūs varat tos izmantot kā vieglus testa lodziņus, piemēram, lai pārbaudītu dažādas tīmekļa vai datubāzes servera konfigurācijas pirms to nodošanas ražošanas serverim. Vēl viens lietošanas gadījums ir pārbaudīt, kā lietojumprogramma darbojas dažādās dažādās distros versijās.

Varat arī tos izmantot, lai izolētu lietojumprogrammas, kuras neuzticaties - jebkurš šāds pieteikums tiks ierobežots ar savu konteineru, un tas neietekmēs uzņēmējas sistēmas darbību. Lūdzu, ņemiet vērā, ka, lai gan ir iespējams palaist GUI lietojumprogrammas konteinerā, tas aizņem ievērojamu laiku un pūles, tāpēc tas nav ieteicams. Ja vēlaties palaist GUI lietojumprogrammas smilšu kastē, skatiet mūsu rakstu par to, kā lietot smiltis lietojumprogrammās Linux.

Palaist vairākus Distros vienlaicīgi ar Linux konteineriem

Tādējādi beidzas mūsu How-To darbināšana vairākos Linux distros vienā datorā, bez pilna izmēra virtuālās mašīnas pieskaitāmās virsmas. Šīs tehnoloģijas lietderība ir ierobežota tikai ar jūsu radošumu, tāpēc izmēģiniet un izmēģiniet jaunus lietošanas gadījumus. Ja jums ir problēmas ar konteineru uzstādīšanu, lūdzu, uzdodiet mums jautājumu komentāru sadaļā.

Top