Installa LXC (Kontenituri tal-Linux) f'RHEL, Rocky & AlmaLinux


LXD huwa deskritt bħala l-kontenitur tal-ġenerazzjoni li jmiss u l-maniġer tal-magni virtwali li joffri immersiv għal sistemi Linux li jaħdmu ġewwa kontenituri jew bħala magni virtwali.

Jipprovdi immaġini għal numru eċċessiv ta 'distribuzzjonijiet Linux b'appoġġ għal għażla wiesgħa ta' backends ta 'ħażna u tipi ta' netwerk. Jipprovdi wkoll l-għażla li jiġu installati l-immaġini fuq PC/laptop individwali u anke fuq istanza tas-sħab.

LXD jippermettilek timmaniġġja kontenituri u VMs billi tuża tliet modi. Tista' tisfrutta l-klijent lxc jew l-għodda tal-linja tal-kmand, API REST, jew saħansitra integrazzjonijiet ta' partijiet terzi.

Il-karatteristiċi notevoli tal-LXD jinkludu:

  • LXD huwa bbażat fuq immaġini b'immaġini għal għażla wiesgħa ta' distribuzzjonijiet tal-Linux.
  • Hija mibnija bis-sigurtà bħala prijorità ewlenija.
  • Tipprovdi REST API u għodda tal-linja tal-kmand lxc biex jinteraġixxu mal-kontenituri.
  • Tipprovdi appoġġ għal firxa wiesgħa ta' backends ta' ħażna, volumi ta' ħażna, u pools ta' ħażna.
  • L-immaniġġjar tan-netwerk isir permezz tal-ħolqien ta' netwerks ta' pontijiet u mini cross-host.
  • Kontroll avvanzat tar-riżorsi bħal CPU, RAM, użu tad-disk, block I/O, u riżorsi tal-kernel.
  • Flessibbli u skalabbli – Tista' tuża kontenituri fuq il-PC tiegħek u tikkonfigura cluster li jista' jaggrega eluf ta' kontenituri fuq diversi nodi.

M'għandux jiġi konfuż mal-għodda tal-klijent tal-linja tal-kmand tal-lxc ipprovduta minn LXD, LXC (Linux Container) hija teknoloġija ta 'virtwalizzazzjoni fil-livell tal-OS popolari li tuża API qawwija u għodod oħra biex jippermettu lill-utenti joħolqu u jimmaniġġjaw bla xkiel kontenituri u magni virtwali f' ospitanti wieħed. Jinkludi mudelli, lingwa tal-għodda, u rbit tal-librerija.

LXC juża l-karatteristiċi tal-qalba li ġejjin biex jimmaniġġja l-proċessi:

  • Ispazji tal-isem tal-kernel: pid, mount, uts network, u user.
  • CGroups (gruppi ta' kontroll).
  • Chroots – L-użu ta’ pivot_root.
  • Politiki ta' Seccomp.
  • SELinux u profili Apparmor.

Linuxcontainers.org huwa l-proġett umbrella wara kemm LXD kif ukoll LXC. L-għan tiegħu huwa li joffri distro u pjattaforma newtrali għall-bejjiegħ għat-teknoloġiji tal-kontenituri Linux.

B'dik l-introduzzjoni barra mill-mod, issa se nuru kif noħolqu u jimmaniġġjaw kontenituri LXC fuq distribuzzjonijiet Linux ibbażati fuq RHEL bħal CentOS, Rocky Linux, u AlmaLinux.

Sistema operattiva Linux li taħdem b'installazzjoni minima:

  • Installazzjoni ta' RHEL Linux
  • Installazzjoni ta' CentOS Linux
  • Installazzjoni ta' Rocky Linux
  • Installazzjoni ta' AlmaLinux

Pass 1: Issettja SELinux għall-Modalità Permissiva

Mill-ewwel, se nibdew billi nikkonfiguraw SELinux u nissettjawh bħala permissiv. Iżda qabel ma nagħmlu dan, ejja naġġornaw il-pakketti tas-sistema kif ġej:

$ sudo dnf update

Biex issettja SELinux bħala permissiv, eżegwixxi l-kmand:

$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Biex dan jidħol fis-seħħ, reboot is-server tiegħek.

$ sudo reboot

U kkonferma l-istatus ta 'SELinux.

$ getenforce

Pass 2: Installa EPEL Repository

EPEL huwa repożitorju mill-Proġett Fedora li jipprovdi sett ta 'pakketti ta' kwalità għolja għal RedHat Enterprise Linux u distribuzzjonijiet oħra bbażati fuq RHEL.

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo yum install epel-release

Pass 3: Żid il-Parametri tal-kernel

Qabel ma ninstallaw LXD, huma meħtieġa xi parametri addizzjonali. Għalhekk aqleb għall-utent root:

$ su -

U żid il-parametri kif ġej.

$ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
$ grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)"
$ echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf

Ladarba l-parametri jkunu f'posthom, imbagħad ipproċedi u ppermetti Snap.

Pass 4: Installa u Ippermetti Snap

L-aktar mod sempliċi biex tinstalla LXD fuq RHEL 8 huwa li tinstallah bħala pakkett snap. Imma l-ewwel, ejjew ninstallaw snap kif ġej.

$ sudo dnf install snapd

Dan se jinstalla snapd daemon jew servizz flimkien ma 'dipendenzi oħra ta' Python kif muri.

Bil-snap installat, ipproċedi u ppermettiet is-sokit prinċipali tal-komunikazzjoni snap.

$ sudo systemctl enable --now snapd.socket

Barra minn hekk, ppermetti appoġġ klassiku billi toħloq symlink minn /var/lib/snapd/snap għal /snap.

$ sudo ln -s /var/lib/snapd/snap  /snap

Biex taġġorna l-mogħdijiet snap, ibda mill-ġdid is-sistema tiegħek.

$ sudo reboot

Pass 5: Installa LXD Containerization Manager

Hemm żewġ modi kif tinstalla LXD minn snap. Tista 'tinstalla l-aħħar verżjoni ta' LXD kif muri.

$ sudo snap install —-classic lxd

Alternattivament, tista 'tinstalla l-aħħar verżjoni stabbli LTS kif ġej:

$ sudo snap install lxd --channel=4.0/stable

Biex tkun tista' tesegwixxi kmandi lxc mingħajr ma taqleb għal utent sudo, żid l-utent li illoggja bħalissa mal-grupp lxd.

$ sudo usermod -aG lxd $USER

Ivverifika li l-utent ġie miżjud mal-grupp lxd billi telenka l-gruppi kollha li jappartjeni għalihom l-utent.

$ groups tecmint

Sussegwentement, mexxi l-kmand newgrp kif ġej.

$ newgrp lxd

Il-kmand jibdel l-ID tal-grupp kurrenti waqt sessjoni ta' login. Hija tistabbilixxi l-ID tal-grupp kurrenti għall-grupp imsemmi li huwa lxd.

Pass 6: Inizjalizzazzjoni tal-Ambjent LXD

Qabel ma nibdew noħolqu u nimmaniġġjaw kontenituri LXD, għandna bżonn inizjalizzaw l-ambjent LXD billi nħaddmu l-kmand.

$ lxc init

Dak li ġej huwa serje ta 'prompts li jippermettulek twaqqaf l-ambjent tiegħek. In-nuqqasijiet se jaħdmu tajjeb, iżda tħossok liberu li tispeċifika l-preferenzi tiegħek.

Ħloqna ġabra ta 'ħażna msejħa tec-pool bl-għażla lvm bħala backend.

Biex tivverifika l-ambjent LXD li għadek kif ikkonfigurat, hemm numru ta 'kmandi li tista' tuża. Pereżempju, biex turi l-profil LXD default eżegwixxi:

$ lxc profile show default

Biex turi l-adapters tan-netwerk u l-indirizzi IPv4 u IPv6, mexxi:

$ lxc network list

Tista' dejjaq aktar u turi informazzjoni ifjen dwar l-interface lxdbr0 kif ġej.

$ lxc network show lxdbr0

Tista 'wkoll tivverifika l-pool tal-ħażna.

$ lxc storage list

Tista 'tikseb aktar dettalji kkomplikati dwar il-pool tal-ħażna.

$ lxc storage show tec-pool

Biex telenka kontenituri lxc li qed jaħdmu, mexxi l-kmand:

$ lxc list

Bħalissa, għad m'għandna l-ebda kontenitur li jaħdem. Allura inti se tikseb tabella vojta bit-tikketti tal-kolonni biss.

Pass 7: Li Elenka Stampi tal-Kontenituri LXC Mibnija minn qabel

Eżatt bħal Docker, il-pjattaforma LXC tipprovdi repożitorju ta 'immaġini mibnija minn qabel li tista' toħloq kontenituri minnhom. Biex telenka l-immaġini kollha mibnija minn qabel għas-sistemi operattivi kollha inklużi l-magni virtwali, ħaddem il-kmand:

$ lxc image list images: 

Dan jimla lista enormi ta 'immaġni ta' kontenitur u magni virtwali għas-sistemi operattivi kollha. Biex tnaqqas għal distribuzzjoni speċifika tal-Linux, uża s-sintassi:

$ lxc image list images: grep -i os-type

Pereżempju, biex tfittex immaġini disponibbli għal Rocky Linux, mexxi l-kmand:

$ lxc image list images: grep -i rocky

Jekk qed tfittex immaġini Debian, mexxi l-kmand:

$ lxc image list images: grep -i debian

Pass 8: Tnedija ta' Kontenituri LXC

Biex tniedi kontenituri lxc, uża s-sintassi:

$ lxc launch images:{distro}/{version}/{arch} {container-name-here}

Hawnhekk, se nniedu 2 kontenituri: tec-container1 minn Debian 10 u tec-container2 minn Rocky Linux 8.

$ lxc launch images:debian/10/amd64 tec-container1
$ lxc launch images:rockylinux/8/amd64 tec-container2 

Biex telenka l-kontenituri lxc, eżegwixxi l-kmand:

$ lxc list

L-output juri għadd ta 'informazzjoni dwar il-kontenituri. Dan jinkludi l-isem tal-kontenituri, l-istat - kemm jekk qed jaħdem jew waqfien - indirizzi IPv4 u IPv6, tip (kemm jekk kontenitur jew magna virtwali), u numru ta 'snapshots.

Biex telenka kontenituri li qed jaħdmu biss, ħaddem il-kmand:

$ lxc list | grep -i running

Bl-istess mod, għal kontenituri mwaqqfa, eżegwixxi:

$ lxc list | grep -i stopped

Tista' tinvestiga l-informazzjoni u l-metriċi ta' kontenitur bħal proċessi ta' tħaddim, użu ta' CPU u memorja, u bandwidth biex insemmi ftit billi tuża l-kmand:

$ lxc info tec-container1 

Pass 9: Ikseb Aċċess għall-qoxra għal Kontenitur LXC

Tista' tikseb aċċess bash għal kontenitur billi tuża s-sintassi:

$ lxc exec container-name  name-of-the-shell

Biex tikseb aċċess għall-qoxra għal tec-container1, aħna se nħaddmu l-kmand:

$ lxc exec tec-container1 bash

Ladarba tkun ksibt aċċess għall-qoxra, tista' tibda tinteraġixxi mal-kontenitur bħala utent għerq billi tmexxi kmandi komuni tal-qoxra inkluż l-aġġornament tas-sistema kif muri:

$ apt update

Biex toħroġ mill-kontenitur, mexxi l-kmand:

$ exit

Inkella, tista' tesegwixxi l-kmandi direttament fuq il-kontenitur mingħajr ma taċċessa l-qoxra billi tuża l-format li ġej:

$ lxc exec container-name command

Pereżempju, tista 'tmexxi l-kmandi li ġejjin li se taġġorna l-listi tal-pakketti, tiċċekkja l-verżjoni tal-OS li taħdem fuq il-kontenitur Debian u tiċċekkja d-data.

$ lxc exec tec-container1 apt update
$ lxc exec tec-container1 cat /etc/debian_version
$ lxc exec tec-container1 date

Pass 10: Iġbed/Imbotta Fajl(i) għal Kontenitur LXC

Operazzjoni oħra li tista 'twettaq hija li tittrasferixxi fajls lejn u mill-kontenitur. Biex nuru dan, se noħolqu direttorju ġdid fil-kontenitur LXD u ninnavigaw fih.

# mkdir data && cd data

Sussegwentement, aħna noħolqu fajl kampjun u nżidu xi dejta. Biex nagħmlu dan aħna noħolqu fajl kampjun bl-editur vim

# vim file1.txt

Sussegwentement, aħna ser ittajpja xi kampjun ta 'test u nissejvja l-fajl.

Hello World, Welcome to LXD containers.

Biex iġbed il-fajl mill-kontenitur għas-sistema ospitanti lokali, se nużaw is-sintassi:

$ lxc file pull {container-name}/{path/to/file} {/path/to/local/dest}

F'dan il-każ, il-kmand se jkun:

$ lxc file pull tec-container2/root/data/file1.txt /home/tecmint

Biex timbotta jew tikkopja fajl mid-direttorju lokali għall-kontenitur uża s-sintassi:

$ lxc file push {/path/to/file} {container-nane} /path/to/dest/dir/

F'dan il-każ, għandna fajl kampjun fid-direttorju tad-dar imsejjaħ file2.txt li qed jiġi kkupjat fil-mogħdija /root/data/ fil-kontenitur tec-container2.

$ lxc file push /home/tecmint/file2.txt tec-container2/root/data/

Biex tikkonferma l-eżistenza tal-fajl fil-kontenitur, se nħaddmu:

$ lxc exec tec-container2 ls /root/data

Pass 11: Waqqaf/Ibda/Erġa ibda u Ħassar il-Kontenituri LXC

Bl-utilità tal-linja tal-kmand lxc tista 'twettaq kompiti ta' ġestjoni tal-kontejners bħal twaqqaf, tibda, terġa 'tibda u tħassar kontenituri.

Biex twaqqaf kontenitur lxc, uża s-sintassi:

$ lxc stop container-name

Pereżempju, biex twaqqaf tec-container1, aħna se nħaddmu l-kmand:

$ lxc stop tec-container1

Biex tibda l-kontenitur lxc, uża s-sintassi:

$ lxc start container-name

Pereżempju, biex nibdew tec-container1, aħna se nwettqu:

$ lxc start tec-container1

Biex terġa 'tibda ż-żewġ kontenituri lxc, aħna se nħaddmu l-kmand:

$ lxc restart tec-container1
$ lxc restart tec-container2

Biex tħassar kontenitur lxc, trid, l-ewwel, twaqqaf il-kontenitur u wara tħassarha. Per eżempju, biex tħassar, aħna se nħaddmu l-kmandi:

$ lxc stop tec-container1
$ lxc delete tec-container1

Inkella, tista 'tgħaqqad dawn iż-żewġ kmandi kif muri.

$ lxc stop tec-container1 && lxc delete tec-container1

Pass 12: Ikseb Għajnuna fuq Għażliet tal-Linja tal-Kmand LXC

Biex tikseb għajnuna dwar għażliet oħra ta 'kmand ipprovduti minn LXC, sempliċement ħaddem il-kmand:

$ lxc --help
OR
$ lxc command --help e.g
$ lxc file --help

Dik kienet adsa profonda f'kontenituri LXD u kif tista 'toħloq u timmaniġġjahom billi tuża l-għodda ta' utilità tal-linja tal-kmand lxc. Aħna fiduċjużi li sibt din il-gwida utli.