Soovitatav, 2020

Toimetaja Valik

Kuidas käivitada mitut Distrot Simultaneosly kasutades Linuxi konteinereid

Linuxi konteinerid (LXC) on kerge virtualiseerimistehnoloogia ja neil on erinevad kasutusalad. See on osa Linuxi kernelist ja võimaldab teil ühe või mitme Linuxi emotsioni emuleerida ühes Linuxis. Mõelge sellele kui kesksele kohale chrooti ja täieliku virtualiseerimistehnoloogia vahel, nagu VirtualBox, KVM või Xen. Sarnane tehnoloogia BSD maailmas on FreeBSD Jails.

Näiteks on masin, mida kirjutan, Linuxi Mint 18 töötav sülearvuti, mida toetab Intel Atom protsessor ja millel on vähe 2 GB RAM-i. Kuid ma töötan kolm Linuxi konteinerit, millest igaühel on Apache veebiserveri eksemplar, millel puudub suur jõudlus. See oleks mõeldamatu traditsioonilise virtuaalse masinaga nagu VirtualBox. Niisiis, kui te olete soovinud Linuxi süsteemis mitut distrot käivitada, peaksid Linuxi konteinerid tegema sinu jaoks lihtsalt tööd.

Linuxi konteinerite installimine ja seadistamine

Me loodame LXC-le Linux Mint 18 64-bitine. Siin esitatud paigaldusjuhised töötavad ka Ubuntu 16.04 ja uuemate versioonide puhul muutmata kujul. Kui kasutate mõnda teist distro, vaadake palun oma distro ametlikku dokumentatsiooni, kui midagi ei tööta oodatud viisil. Eeldatakse ka käsurea tundmist ja üldist tõrkeotsingut.

Eeltingimused

Siin on mõned asjad, mida peaksite määrama, et hakata kasutama mitut distrot:

1. Paigaldage LXC ja muu eeltingimuslik tarkvara, kasutades järgmist:

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

2. Nüüd peate oma profiili konfigureerima . Sisestage järgmised seadistused:

[sourcecode] mkdir -p ~ ~ .config / lxc
kaja "lxc.id_map = u 0 100000 65536" & amp; amp; gt; ~ / .config / lxc / default.conf
kaja "lxc.id_map = g 0 100000 65536" & amp; amp; gt; & amp; amp; gt; ~ / .config / lxc / default.conf
echo "lxc.network.type = veth" & amp; gt; & amp; amp; gt; ~ / .config / lxc / default.conf
kaja "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. Seejärel peate kasutaja õigused seadistama järgmiselt:

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

sudo cgm loob kõik kasutaja
sudo cgm chown kõik kasutaja $ (id -u) $ (id -g)
cgm movepid kõik kasutajad $$ [/ sourcecode]

Konteinerite seadistamine

Nüüd, kui teil on LXC Container paigaldatud koos muu eeltingimusega, on siin pakendi seadistamise juhised:

1. Selles näites loome Ubuntu konteineri nimega ubu1 . Selleks toimige järgmine käsk:

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

2. Siin –template parameeter –template lxc alla eelkonfigureeritud kujutise allalaadimist internetist, samas kui parameeter ubu1 antud juhul konteineri nime - ubu1 . Võite kasutada mis tahes nime.

3. Nüüd näete toetatud piltide loendit:

4. Sisestage selle jaotuse spetsiifika, mida soovite installida. Paigaldan siin 64-bitise Ubuntu 16.04 versiooni (koodnimi xenial):

5. Kui soovite pilti mitte-interaktiivselt installida, saavutab järgmine käsk sama tulemuse nagu ülaltoodud:

[sourcecode] lxc-create -t ​​allalaadimine -n ​​ubu1 - –dist ubuntu –välja xenial –arch amd64 [/ sourcecode]

6. LXC laadib alla ja paigaldab oma hostisüsteemile minimaalse Ubuntu kseniaalse pildi. Allalaadimine ja installimine võib teie internetiühendusest ja arvuti kiirusest sõltuvalt aega võtta. Pärast installimist näete sellist ekraani:

Nüüd olete valmis kasutama oma äsja loodud Ubuntu konteinerit.

Mitme Distrose kasutamine Linuxi konteineritega

Konteineri käivitamine

Käivitage konteiner, kasutades käsku lxc-start :

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

Siin määrab -n parameeter selle konteineri nime, mida soovite alustada ( ubu1 antud juhul) ja parameeter -d muudab selle taustal ubu1 .

Võite kontrollida, et konteiner käivitati käsuga lxc-ls :

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

Parameeter -f võimaldab fancy aruandlust. Siin näete, et mul on kaks konteinerit - üks Debian (peatatud) ja üks Ubuntu (töötab).

Konteineri ligipääs ja kasutamine

Konteineri konsooli saab kasutada käsuga lxc-attach :

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

Nüüd on teie konteineris juurekate. Soovitatav on seada root kasutaja salasõna ja luua tavaline kasutajakonto :

[sourcecode] passwd
adduser beebom [/ sourcecode]

Muidugi asenda beebom soovitud kasutajanimega. Seejärel saate installida tarkvara ja konfigureerida oma konteineri nagu te tavalisel süsteemil. Näiteks Debian või Ubuntu konteineris:

[sourcecode] apt install wget openssh-server htop tmux nano iptables [/ sourcecode]

Konteineri peatamine

Pärast seda, kui olete konteineriga mänginud, kasutage vastuvõtva süsteemi naasmiseks kas exit . Nüüd kasutage lxc-stop käsku:

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

See muudab konteineri puhtaks ja see ei tarbi teie süsteemis rohkem ressursse, välja arvatud kettaruum.

Kloonimine ja hetktõmmised

Kloonid

Kui olete programmide konteinerisse installinud ja konfigureerinud selle vastavalt oma soovile, võite selle hõlpsaks eraldamiseks luua selle ühe või mitu koopiat . Seda saab teha klooni loomisega, mis on konteineri täpne koopia.

Näiteks selleks, et luua ubu1 konteineri kloon (nimetame seda ubu2 ), peatage esmalt konteiner kasutades lxc-stop, seejärel kasutage käsku lxc-copy :

[sourcecode] lxc-stop -n ubu

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

Siin määrab -n valik allikakonteineri ja -N valik määrab klooni nime . Konteineri kloonimise kontrollimiseks kasutage käsku lxc-ls :

Snapshots

Oletame, et te kavatsete muuta mõningaid potentsiaalselt ohtlikke või raske konteineri muudatustest, nagu näiteks veebiserveri konfigureerimine. Kahju minimeerimiseks saate enne sellise muudatuse tegemist luua konteineri hetktõmmise. Kui seadistamise ajal midagi läheb valesti, saate lihtsalt peatada konteineri ja taastada selle eelmisele tööolekule, taastades hetktõmmise.

Snapshoti loomiseks peatage esmalt konteiner :

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

Seejärel looge lxc-snapshot käsu abil lxc-snapshot :

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

See loob hetktõmmise, mida nimetatakse snap0 . Kõik järgnevad snapshots, mida te selle käsu abil loote, nimetatakse snap1, snap2 jne.

Pärast seda saate konteineri käivitada ja teha soovitud muudatused. Kui soovite igal ajal oma loodud hetktõmmise juurde naasta, peatage konteiner ja kasutage lxc-snapshot taastamiseks käsku lxc-snapshot millel on parameeter -r :

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

See taastab pildi snap0 ubu1 konteinerisse.

Konteinerite automaatne käivitamine käivitamisel

Saate teha konteineri, näiteks veebiserveri konteineri, käivitades automaatselt oma süsteemi käivitamisel. Selleks minge konteineri konfiguratsioonifaili, mis asub $HOME/.local/share/lxc//config ja lisage järgmised read :

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

Esimeses reas täpsustatakse, et mahuti peaks olema käivitamisel. Teine ütleb, et süsteem ootab 5 sekundit enne järgmise konteineri käivitamist, kui see on olemas.

Tõrkeotsing

Kui teil on probleeme konteinerite käivitamisega, on esimene asi, mida proovida on lxc-start käsk lxc-start . Näiteks:

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

See näitab teile praeguses konsoolis esinevaid vigu, mis on probleemi olemuse kindlakstegemisel väga kasulik.

Probleemid mitme konteineri käivitamisel samaaegselt

Kui proovite korraga käivitada mitu konteinerit, võite näha vigu, nagu näiteks „Kvoot on saavutatud”, või „ei õnnestunud luua konfigureeritud võrku”. Seda seetõttu, et teil on rohkem võrguliideseid kui teile määratud. Võid suurendada võrgu sildade arvu, mida kasutaja saab käivitada, muutes faili /etc/lxc/lxc-usernet faili /etc/lxc/lxc-usernet . See võib tunduda selline:

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

Te võite muuta numbrit lõpus (5 selles näites), suuremale arvule, näiteks 10. See võimaldab teil korraga kuni 10 konteinerit käivitada.

Linuxi konteinerite muud kasutused

Linuxi konteineritel on erinevad kasutusalad. Neid saab kasutada kergete testkastidena, näiteks testimaks veebi- või andmebaasiserveri erinevaid konfiguratsioone enne, kui need on tootmisserverisse pandud. Teine kasutusviis on testida, kuidas rakendus töötab erinevate distroside erinevates versioonides.

Võite neid kasutada ka selliste rakenduste isoleerimiseks, mida te ei usalda - igasugune kahju, mida selline rakendus piirab, piirdub tema enda konteineriga ja ei mõjuta vastuvõtvasüsteemi. Pange tähele, et kuigi on võimalik käivitada GUI rakendusi konteineris, võtab see palju aega ja pingutust ning seega ei ole see soovitatav. Kui soovite käivitada liivakastis GUI-rakendusi, vaadake meie artiklit Linuxi liivakastide rakenduste kohta.

Käivitage Linuxi konteineritega samaaegselt mitu Distrot

Seega lõpeb meie How-To, et käivitada mitu Linuxi distrot ühel arvutil ilma täismõõdulise virtuaalmasina üldkuluta. Selle tehnoloogia kasulikkust piirab ainult teie loovus, nii et võite vabalt katsetada ja leida uusi kasutusviise. Kui teil on probleeme konteinerite seadistamisega, küsige meile küsimusi kommentaaride osas.

Top