Cum să

Cum să rulați mai multe distrosuri simultan folosind containere Linux

Cum să rulați mai multe distrosuri simultan folosind containere Linux

Linux Containers (LXC) sunt o tehnologie ușoară de virtualizare și au diverse utilizări. Face parte din nucleul Linux și vă poate permite să emulați una sau mai multe distribuții Linux pe o singură gazdă Linux. Gândiți-vă la acesta ca la un punct de mijloc între un chroot și tehnologii complete de virtualizare, cum ar fi VirtualBox, KVM sau Xen. O tehnologie similară prezentă în lumea BSD sunt închisorile FreeBSD.

De exemplu, mașina pe care scriu este un laptop care rulează Linux Mint 18, alimentat de un procesor Intel Atom și are 2 GB de RAM. Cu toate acestea, rulez trei containere Linux, fiecare cu o instanță a serverului web Apache care rulează, fără o mare performanță. Acest lucru ar fi de neconceput cu o mașină virtuală tradițională, cum ar fi VirtualBox. Deci, dacă ați dorit să rulați mai multe distribuții pe sistemul dvs. Linux, Linux Containers ar trebui să facă treaba pentru dvs. foarte bine.

Instalarea și configurarea containerelor Linux

Configurăm LXC pe Linux Mint 18 pe 64 de biți. Instrucțiunile de instalare furnizate aici vor funcționa, de asemenea, nemodificate pe Ubuntu 16.04 și mai sus. Dacă utilizați o altă distribuție, vă rugăm să consultați documentația oficială a distribuției dvs. dacă ceva nu funcționează conform așteptărilor. Se presupune, de asemenea, o familiaritate cu linia de comandă și depanarea generală.

Condiții prealabile

Iată câteva lucruri pe care ar trebui să le configurați pentru a începe să utilizați distribuții multiple:

1. Instalați LXC și alte programe preliminare care utilizează:

[cod sursă] sudo apt install lxc lxc-templates uidmap [/ cod sursă]

2. Acum trebuie configurați-vă profilul. Introduceți următoarele comenzi pentru configurare:

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

3. Apoi, trebuie configurați permisiunile utilizatorului după cum urmează:

[cod sursă] sudo usermod -add-subuids 100000-165536 $ USER
sudo usermod -add-subgids 100000-165536 $ USER

sudo cgm creează tot utilizatorul
sudo cgm chown tot utilizatorul $ (id -u) $ (id -g)
cgm movepid to user $$ [/ sourcecode]

Configurarea containerului

Acum că aveți LXC Container instalat împreună cu alte software-uri preliminare, iată pașii necesari pentru configurarea containerului:

1. În acest exemplu, vom configura un container Ubuntu, numit ubu1. Pentru a face acest lucru, executați următoarea comandă:

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

2. Aici, -șablon parametrul îi spune lui lxc să Descarca o imagine preconfigurată de pe internet, in timp ce -Nume parametrul specifică numele containerului - ubu1 în acest caz. Puteți folosi orice nume doriți.

3. Vei vedea acum o listă de imagini distro acceptate:

4. Introduceți specificul distribuției pe care doriți să o instalați. Voi instala versiunea pe 64 de biți a Ubuntu 16.04 (nume de cod xenial) aici:

5. Dacă doriți instalați imaginea neinteractiv, următoarea comandă obține același rezultat ca și cele de mai sus:

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

6. LXC va descărca și instala acum o imagine xenial minimă Ubuntu pe sistemul dvs. gazdă. Descărcarea și instalarea ar putea dura puțin, în funcție de conexiunea la internet și de viteza computerului. După instalare, veți vedea un ecran ca acesta:

Acum sunteți gata să utilizați containerul Ubuntu nou configurat.

Utilizarea mai multor distrosuri cu containere Linux

Pornirea containerului

Porniți containerul folosind lxc-start comanda:

[cod sursă] lxc-start -n ubu1 -d [/ cod sursă]

Aici -n parametru specifică numele containerului pe care doriți să începeți (ubu1 în acest caz) și -d parametru îl face să ruleze în fundal.

Puteți verifica dacă containerul a început folosind lxc-ls comanda:

[cod sursă] lxc-ls -f [/ cod sursă]

-f parametrul activează extravagant raportare. Aici, puteți vedea că am două containere - unul Debian (oprit) și unul Ubuntu (rulează).

Accesarea și utilizarea containerului

Poti accesați consola containerului folosind lxc-attach comanda:

[cod sursă] lxc-attach -n ubu1 [/ cod sursă]

Acum veți avea un coajă de rădăcină pe container. Este recomandat să configurați o parolă pentru utilizatorul root și creați un cont de utilizator obișnuit:

[cod sursă] passwd
adduser beebom [/ sourcecode]

Desigur, înlocuiți beebom cu numele de utilizator dorit. Apoi puteți instala software și configura containerul așa cum ați face pe un sistem obișnuit. De exemplu, într-un container Debian sau Ubuntu:

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

Oprirea containerului

După ce ați terminat de jucat cu containerul, folosiți fișierul Ieșire comanda pentru a reveni la sistemul gazdă. Acum utilizați lxc-stop comanda să vă opriți containerul:

[cod sursă] lxc-stop -n ubu1 [/ cod sursă]

Acest lucru va face ca containerul să se închidă în mod curat și nu va mai consuma resurse pe sistemul dvs., cu excepția spațiului pe disc.

Clonare și Instantanee

Clone

După ce ați instalat programele într-un container și le-ați configurat după bunul plac, vă recomandăm creați una sau mai multe copii ale acesteia pentru aprovizionare ușoară. Puteți face acest lucru creând un clona, care este o replică exactă a unui container.

De exemplu, pentru a crea o clonă a ubu1 container (să-l numim ubu2), mai întâi opriți recipientul folosind lxc-stop, apoi folosiți lxc-copy comanda:

[cod sursă] lxc-stop -n ubu1

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

Aici -n opțiunea specifică containerul sursă, si -Opțiunea N specifică numele clonei. La verifica că containerul a fost clonat, utilizați lxc-ls comanda:

Instantanee

Să presupunem că sunteți pe punctul de a face unele potențial periculoase sau greu de recuperat după modificările aduse unui container, cum ar fi reconfigurarea unui server web. Pentru a minimiza daunele, puteți crea un instantaneu al containerului înainte de a efectua o astfel de modificare. În cazul în care ceva nu merge bine în timpul configurării, puteți opri pur și simplu containerul și recuperați-l la starea sa de lucru anterioară, restaurând un instant.

Pentru a crea instantaneul, mai întâi opriți recipientul:

[cod sursă] lxc-stop -n ubu1 [/ cod sursă]

Atunci, creați un instantaneu folosind lxc-instantaneu comanda:

[cod sursă] lxc-snapshot -n ubu1 [/ cod sursă]

Aceasta creează un instantaneu numit snap0. Orice instantanee ulterioare pe care le creați folosind această comandă vor fi apelate snap1, snap2, etc..

După aceasta, puteți start container și faceți modificările dorite. Dacă vreți să reveniți la un instantaneu pe care l-ați creat, Stop containerul și utilizați lxc-instantaneu comanda cu -r parametru pentru restabiliți un instantaneu:

[cod sursă] lxc-snapshot -r snap0 -n ubu1 [/ cod sursă]

Aceasta va restabili instantaneul snap0 la ubu1 container.

Pornirea automată a containerelor la pornire

Puteți crea un container, de exemplu, un container de server web, să porniți automat atunci când porniți sistemul. Pentru a face acest lucru, mergeți la fișierul de configurare al containerului, situat în $ HOME / .local / share / lxc // config, și adăugați următoarele rânduri:

[cod sursă] lxc.start.auto = 1
lxc.start.delay = 5 [/ cod sursă]

Prima linie specifică faptul că containerul trebuie pornit la pornire. Al doilea spune sistemului să așteptați 5 secunde înainte de a începe următorul container, dacă există.

Depanare

Dacă întâmpinați probleme la pornirea containerelor, primul lucru de încercat este să rulați lxc-start comanda în Prim plan modul. De exemplu:

[cod sursă] lxc-start -n ubu1 -F [/ cod sursă]

Asta va vă arată erorile de pe consola actualăe, care este foarte util în identificarea naturii problemei.

Probleme cu rularea simultană a mai multor containere

Dacă încercați să rulați mai multe containere simultan, s-ar putea să vedeți erori precum „Cota atinsă” sau „nu a reușit să creeze rețeaua configurată”. Acest lucru se datorează faptului că rulați mai multe interfețe de rețea decât cele alocate. Poti crește numărul de punți de rețea pe care le poate rula un utilizator prin modificarea / etc / lxc / lxc-usernet fișier ca rădăcină. S-ar putea să arate cam așa:

[cod sursă] # NUME DE UTILIZATOR TIP DE PONT
beebom veth lxcbr0 5 [/ cod sursă]

Poti schimbați numărul la sfârșit (5 în acest exemplu), la un număr mai mare, cum ar fi 10. Acest lucru vă va permite să rulați până la 10 containere simultan.

Alte utilizări ale containerelor Linux

Containerele Linux au diverse utilizări. Le puteți folosi ca cutii de testare ușoare, de exemplu, pentru a testa diferite configurații ale unui server web sau de baze de date înainte de a le trimite la un server de producție. Un alt caz de utilizare este de a testa modul în care o aplicație rulează pe diferite versiuni ale diferitelor distribuții.

De asemenea, le puteți utiliza pentru a izola aplicații în care nu aveți încredere - orice daune pe care le face o astfel de aplicație vor fi limitate la propriul container și nu vor afecta sistemul gazdă. Vă rugăm să rețineți că, deși este posibil să rulați aplicații GUI într-un container, este nevoie de o cantitate semnificativă de timp și efort și, prin urmare, nu este recomandat. Dacă doriți să rulați aplicații GUI într-un sandbox, consultați articolul nostru despre cum să aplicați sandbox în Linux.

VEZI ȘI: 7 cele mai bune alternative VirtualBox pe care le poți folosi

Rulați mai multe Distros simultan cu Containere Linux

Astfel se încheie procedura noastră de utilizare a mai multor distribuții Linux pe un singur computer, fără costurile unei mașini virtuale de dimensiuni complete. Utilitatea acestei tehnologii este limitată doar de creativitatea dvs., așa că nu ezitați să experimentați și să aflați cazuri de utilizare noi. Dacă aveți probleme la configurarea containerelor, nu ezitați să ne puneți o întrebare în secțiunea de comentarii.

Cum să dezactivați funcția Facebook Chat văzut
Nu sunt împotriva funcției Facebook chat văzut, dar majoritatea utilizatorilor sunt sigur. Motivul este intruziunea sa în intimitatea noastră. Funcț...
Cea mai fiabilă platformă PrestaShop pentru a începe site-ul de comerț electronic
Cu un deceniu înainte, când CMS-urile nu își găsiseră popularitatea în rândul profesioniștilor de pe web, crearea site-ului / blogului era o sarcină h...
Cum se schimbă locația capturii de ecran în Windows 10
Avem tendința de a face o mulțime de capturi de ecran, deoarece este un mod destul de la îndemână de a partaja ceva de pe computer sau smartphone. Pos...