Preporučeno, 2024

Izbor Urednika

Kako pokrenuti više Distros Simultaneosly Korištenje Linux kontejnera

Kontejneri za Linux (LXC) su lagana virtualizacijska tehnologija i imaju različite namjene. On je dio Linux kernela i može vam omogućiti da oponašate jedan ili više Linux distrosa na jednom Linux domaćinu. Razmislite o tome kao o sredini između chroot i potpune virtualizacijske tehnologije kao što su VirtualBox, KVM ili Xen. Slična tehnologija prisutna u BSD svijetu je i FreeBSD Jails.

Primjerice, stroj na kojem pišem je prijenosno računalo s Linux Mint 18, koje pokreće Intel Atom procesor, a ima 2 GB RAM-a. Ipak, pokrećem tri Linux kontejnera, svaki s instancom Apache web poslužitelja, bez velikog učinka. To bi bilo nezamislivo s tradicionalnim virtualnim strojem kao što je VirtualBox. Dakle, ako ste željeli pokrenuti višestruke distribucije na vašem Linux sustavu, Linux Kontejneri bi trebali obaviti posao za vas.

Instaliranje i konfiguriranje Linux spremnika

Postavljamo LXC na Linux Mint 18 64-bit. Ovdje navedene upute za instalaciju također će raditi bez izmjena na Ubuntu 16.04 i novijim. Ako koristite drugi distro, pogledajte službenu dokumentaciju vašeg distroa ako nešto ne radi kako je očekivano. Također se pretpostavlja poznavanje naredbenog retka i opće rješavanje problema.

Preduvjeti

Evo nekoliko stvari koje biste trebali postaviti da biste počeli koristiti višestruke dijelove:

1. Instalirajte LXC i drugi preduvjetni softver koristeći:

[izvorni kod] sudo apt install lxc lxc-templates uidmap [/ izvorni kod]

2. Sada morate konfigurirati svoj profil . Unesite sljedeće naredbe za postavljanje:

[izvorni kod] 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

3. Zatim trebate postaviti korisnička ovlaštenja na sljedeći način:

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

sudo cgm stvara sve korisnike
sudo cgm chown svi korisnici $ (id -u) $ (id -g)
cgm movepid sve korisnik $$ [/ sourcecode]

Postavljanje spremnika

Sada kada imate LXC kontejner instaliran zajedno s drugim preduvjetnim softverom, evo koraka za postavljanje spremnika:

1. U ovom primjeru postavit ćemo Ubuntu spremnik, nazvan ubu1 . Da biste to učinili, izvršite sljedeću naredbu:

[izvorni kod] lxc-create - predložak preuzimanja - ime ubu1 [/ sourcecode]

2. Ovdje parametar –template kaže lxc da preuzme unaprijed konfiguriranu sliku s interneta, dok parametar ubu1 navodi ime spremnika - ubu1 u ovom slučaju. Možete koristiti željeno ime.

3. Sada ćete vidjeti popis podržanih distro slika :

4. Unesite pojedinosti distribucije koju želite instalirati. Ovdje ću instalirati 64-bitnu verziju Ubuntu 16.04 (kodno ime xenial):

5. Ako želite instalirati sliku neinteraktivno, sljedeća naredba postiže isti rezultat kao i gore:

[sourcecode] lxc-create -t ​​download -n ubu1 - –dist ubuntu-oslobađanje xenial -arch amd64 [/ izvorni kod]

6. LXC će sada preuzeti i instalirati minimalnu Ubuntu xenial sliku na vašem host sustavu. Preuzimanje i instalacija mogu potrajati malo ovisno o internetskoj vezi i brzini vašeg računala. Nakon instalacije vidjet ćete zaslon kao što je ovaj:

Sada ste spremni za korištenje nedavno postavljenog Ubuntu kontejnera.

Korištenje višestrukih distrosa s Linux spremnicima

Pokretanje spremnika

Pokrenite spremnik pomoću naredbe lxc-start :

[izvorni kod] lxc-start -n ubu1 -d [/ izvorni kod]

Ovdje parametar -n navodi ime spremnika kojeg želite pokrenuti (u ovom slučaju ubu1 ), a parametar -d omogućuje pokretanje u pozadini .

Možete provjeriti je li kontejner pokrenut pomoću naredbe lxc-ls :

[izvorni kod] lxc-ls -f [/ izvorni kod]

Parametar -f omogućuje fantastično izvješćivanje. Ovdje možete vidjeti da imam dva spremnika - jedan Debian (zaustavljen) i jedan Ubuntu (trčanje).

Pristup i korištenje spremnika

lxc-attach konzole možete pristupiti pomoću naredbe lxc-attach :

[izvorni kod] lxc-attach -n ubu1 [/ izvorni kod]

Sada ćete imati spremnik korijena . Preporučuje se da postavite lozinku za korijenskog korisnika i stvorite redovni korisnički račun :

[Izvornog koda] passwd
adduser beebom [/ izvorni kod]

Naravno, zamijenite beebom korisničkim imenom. Nakon toga možete instalirati softver i konfigurirati spremnik kao što biste to učinili na običnom sustavu. Na primjer, u Debian ili Ubuntu spremniku:

[izvorni kod] apt instalirati wget otvarati-poslužitelj htop tmux nano iptables [/ izvorni kod]

Zaustavljanje spremnika

Nakon što završite s igranjem s spremnikom, koristite naredbu exit da biste se vratili u sustav hosta . Sada pomoću naredbe lxc-stop zaustavite spremnik :

[izvorni kod] lxc-stop -n ubu1 [/ izvorni kod]

To će učiniti čisti spremnik i neće trošiti više resursa na vašem sustavu, osim prostora na disku.

Kloniranje i snimanje

klonovi

Nakon što instalirate programe u spremnik i konfigurirate ga prema vlastitim željama, možda ćete htjeti izraditi jedan ili više kopija za jednostavno postavljanje. To možete učiniti tako da stvorite klon, koji je točna replika spremnika.

Na primjer, da biste stvorili klon kontejnera ubu1 (nazovimo ga ubu2 ), prvo zaustavite spremnik koristeći lxc-stop, a zatim upotrijebite naredbu lxc-copy :

[izvorni kod] lxc-stop -n ubu

lxc-copy -n ubu1-ubu2 [/ izvorni kod]

Ovdje opcija-n navodi izvorni spremnik, a opcija -N navodi klon . Da biste potvrdili da je kontejner kloniran, koristite naredbu lxc-ls :

snimke

Pretpostavimo da ćete neke potencijalno opasne ili teško oporaviti od promjena u spremniku, kao što je ponovna konfiguracija web-poslužitelja. Da biste smanjili štetu, možete napraviti snimku spremnika prije nego što napravite takvu promjenu. U slučaju da nešto ne uspije tijekom konfiguracije, možete jednostavno zaustaviti spremnik i vratiti ga u prethodno radno stanje vraćanjem snimke.

Da biste izradili snimku, prvo zaustavite spremnik :

[izvorni kod] lxc-stop -n ubu1 [/ izvorni kod]

Zatim izradite snimku pomoću naredbe lxc-snapshot :

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

To stvara snimku pod nazivom snap0 . Sve daljnje snimke koje stvorite pomoću ove naredbe nazvat će se snap1, snap2, itd.

Nakon toga možete pokrenuti spremnik i izvršiti željene promjene. Ako se u bilo kojem trenutku želite vratiti na snimku koju ste stvorili, zaustavite spremnik i koristite naredbu lxc-snapshot s parametrom -r za vraćanje snimka :

[izvorni kod] lxc-snapshot -r snap0 -n ubu1 [/ izvorni kod]

To će vratiti snimku snap0 u kontejner ubu1 .

Automatsko pokretanje spremnika pri podizanju

Kontejner, na primjer, spremnik web poslužitelja, možete pokrenuti automatski kada pokrenete sustav. Da biste to učinili, idite na konfiguracijsku datoteku kontejnera koja se nalazi u konfiguraciji $HOME/.local/share/lxc//config i dodajte sljedeće retke :

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

U prvom retku navodi se da bi se spremnik trebao pokrenuti pri dizanju. Drugi govori sustavu da čeka 5 sekundi prije pokretanja sljedećeg spremnika, ako postoji.

Rješavanje problema

Ako imate problema s pokretanjem spremnika, prva stvar koju trebate pokušati je izvesti naredbu lxc-start u prednjem planu . Na primjer:

[izvorni kod] lxc-start -n ubu1 -F [/ izvorni kod]

To će vam pokazati greške na trenutnoj konzoli, što je vrlo korisno u identificiranju prirode problema.

Problemi s pokretanjem više kontejnera istovremeno

Ako pokušate pokrenuti više spremnika odjednom, možda ćete vidjeti pogreške kao što je "dostignuta kvota" ili "nije uspjelo kreiranje konfigurirane mreže". To je zato što imate više mrežnih sučelja nego što vam je dodijeljeno. Možete povećati broj mrežnih mostova koje korisnik može pokrenuti izmjenom datoteke /etc/lxc/lxc-usernet kao root . Možda izgleda ovako:

[sourcecode] # USERNAME TIP BRIDGE COUNT
beebom veth lxcbr0 5 [/ izvorni kod]

Možete promijeniti broj na kraju (5 u ovom primjeru), na veći broj kao što je 10. To će vam omogućiti da pokrenete do 10 kontejnera odjednom.

Ostale uporabe Linux kontejnera

Linux spremnici imaju različite namjene. Možete ih koristiti kao lagane testne kutije, na primjer, da biste testirali različite konfiguracije weba ili poslužitelja baze podataka prije nego što ih izvršite na proizvodnom poslužitelju. Drugi slučaj upotrebe je testirati kako aplikacija radi na različitim verzijama različitih distrosa.

Također ih možete koristiti za izoliranje aplikacija koje ne vjerujete - bilo kakva šteta koju takva aplikacija napravi bit će ograničena na vlastiti spremnik i neće utjecati na host sustav. Imajte na umu da, iako je moguće pokrenuti GUI aplikacije u spremniku, potrebno je mnogo vremena i truda, te se stoga ne preporučuje. Ako želite pokrenuti GUI aplikacije u pješčaniku, pogledajte naš članak o tome kako instalirati aplikacije u izdvojenom okruženju u Linuxu.

Pokretanje višestrukih distrosa istovremeno s Linux spremnicima

Tako se završava naš How-To za pokretanje više Linux distribucija na jednom računalu, bez opterećenja virtualnog stroja u punoj veličini. Korisnost ove tehnologije ograničena je samo vašom kreativnošću, stoga slobodno eksperimentirajte i otkrijte nove slučajeve upotrebe. Ako imate problema s postavljanjem spremnika, slobodno nam postavite pitanje u odjeljku za komentare.

Top