Wụnye LXC (Containers Linux) na RHEL, Rocky & AlmaLinux


A kọwara LXD dị ka akpa ọgbọ na-esote yana njikwa igwe mebere nke na-enye immersive maka sistemụ Linux na-agba n'ime akpa ma ọ bụ dị ka igwe mebere.

Ọ na-enye onyonyo maka ọnụọgụ nkesa Linux na-enweghị oke na nkwado maka nhọrọ dị ukwuu nke azụ azụ azụ na ụdị netwọkụ. Ọ na-enyekwa nhọrọ nke ịwụnye ihe oyiyi na PC/laptọọpụ na ọbụna na igwe ojii.

LXD na-enye gị ohere iji ụzọ atọ jikwaa akpa na VM. Ị nwere ike ịkwado onye ahịa lxc ma ọ bụ ngwá ọrụ ahịrị iwu, API REST, ma ọ bụ ọbụna njikọ ndị ọzọ.

Atụmatụ LXD ama ama gụnyere:

  • LXD dabere na onyonyo yana onyonyo maka oke nhọrọ nkesa Linux.
  • E jiri nchekwa rụọ ya dịka ihe kacha mkpa.
  • Ọ na-enye API REST yana ngwá ọrụ ahịrị iwu lxc iji soro arịa na-emekọrịta ihe.
  • Ọ na-enye nkwado maka ọtụtụ ebe nchekwa ndabere, mpịakọta nchekwa, na ọdọ mmiri nchekwa.
  • Njikwa netwọkụ bụ site n'ichepụta netwọọdụ akwa mmiri na ọwara ndị ọbịa.
  • Nchịkwa dị elu nke akụrụngwa dịka CPU, RAM, ojiji diski, igbochi I/O, na akụrụngwa kernel.
  • Mgbanwe na scalable - Ị nwere ike ibunye arịa na PC gị wee hazie ụyọkọ nke nwere ike chịkọta puku kwuru puku akpa n'ọnụ ọnụ dị iche iche.

Ka a ghara inwe mgbagwoju anya na ngwa ahịa ndị ahịa iwu-line nke LXD nyere, LXC (Linux Container) bụ teknụzụ na-ewu ewu nke ọkwa OS nke na-eji API dị ike na ngwaọrụ ndị ọzọ iji mee ka ndị ọrụ nwee ike ịmepụta na jikwaa arịa na igwe mebere n'ime. otu onye ọbịa. Ọ nwere ndebiri, asụsụ ngwaọrụ, yana njikọ ọba akwụkwọ.

LXC na-eme atụmatụ kernel ndị a iji jikwaa usoro:

  • Oghere aha kernel: pid, mount, uts network, na onye ọrụ.
  • Ndị otu CGroups (otu njikwa).
  • Croot – Iji pivot_root.
  • Amụma nke abụọ.
  • SELinux na profaịlụ ngwa.

Linuxcontainers.org bụ nche anwụ ọrụ n'azụ ma LXD na LXC. Ebumnobi ya bụ ịnye distro na ndị na-ere ahịa na-anọpụ iche maka teknụzụ akpa Linux.

Site na mmeghe ahụ na-apụ apụ, anyị ga-egosipụta ugbu a ka esi emepụta na jikwaa akpa LXC na nkesa Linux dabeere na RHEL dị ka CentOS, Rocky Linux, na AlmaLinux.

Sistemụ arụmọrụ Linux na-arụ ọrụ nwere obere nrụnye:

  • Nwụnye RHEL Linux
  • Nwụnye CentOS Linux
  • Nwụnye Rocky Linux
  • Nwụnye AlmaLinux

Kwụpụ 1: Tọọ SELinux ka ọ bụrụ ọnọdụ ikike

Ozugbo bat ahụ, anyị ga-amalite site n'ịhazi SELinux na ịtọ ya ka ọ bụrụ ikike. Mana tupu anyị emee nke a, ka anyị melite ngwugwu sistemụ dị ka ndị a:

$ sudo dnf update

Ka ịtọọ SELinux ka ọ bụrụ ikike, mebie iwu:

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

Ka nke a rụọ ọrụ, malitegharịa ihe nkesa gị.

$ sudo reboot

Ma gosi ọkwa SELinux.

$ getenforce

Kwụpụ 2: Wụnye ebe nchekwa EPEL

EPEL bụ ebe nchekwa sitere na Fedora Project nke na-enye nchịkọta ngwugwu dị elu maka RedHat Enterprise Linux na nkesa RHEL ndị ọzọ.

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

Nzọụkwụ 3: Tinye kernel Parameters

Tupu anyị etinye LXD, achọrọ ụfọdụ paramita ndị ọzọ. Ya mere, gbanwee gaa na onye ọrụ mgbọrọgwụ:

$ su -

Ma gbakwunye parameters dị ka ndị a.

$ 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

Ozugbo parampat dị ebe ahụ, gaa n'ihu wee mee ka Snap nwee ike.

Nzọụkwụ 4: Wụnye na Kwado Snap

Ụzọ kachasị mfe iji wụnye LXD na RHEL 8 bụ ịwụnye ya dị ka ngwugwu ọnyà. Mana nke mbụ, ka anyị wụnye snap dị ka ndị a.

$ sudo dnf install snapd

Nke a ga-etinye snapd daemon ma ọ bụ ọrụ yana ndabere Python ndị ọzọ dị ka egosiri.

Site na arụnyere snap, gaa n'ihu ma mee ka oghere nkwurịta okwu snap bụ isi.

$ sudo systemctl enable --now snapd.socket

Na mgbakwunye, mee nkwado kpochapụwo site na ịmepụta symlink si /var/lib/snapd/snap to/snap.

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

Ka imelite ụzọ snap, malitegharịa sistemụ gị.

$ sudo reboot

Kwụpụ 5: Wụnye njikwa njikwa LXD

Enwere ụzọ abụọ iji wụnye LXD site na ọnyà. Ị nwere ike iwunye ụdị LXD kachasị ọhụrụ dịka egosiri.

$ sudo snap install —-classic lxd

N'aka nke ọzọ, ịnwere ike ịwụnye ụdị LTS kwụsiri ike dị ka ndị a:

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

Iji nwee ike ịme iwu lxc na-enweghị ịgbanwee gaa na onye ọrụ sudo, tinye onye ọrụ abanyela ugbu a na otu lxd.

$ sudo usermod -aG lxd $USER

Nyochaa na agbakwunyela onye ọrụ na otu lxd site na ịdepụta otu niile onye ọrụ nwere.

$ groups tecmint

Na-esote, gbaa iwu newgrp dị ka ndị a.

$ newgrp lxd

Iwu a na-agbanwe ID otu dị ugbu a n'oge nnọkọ nbanye. Ọ na-edobe ID otu dị ugbu a na otu akpọrọ nke bụ lxd.

Kwụpụ 6: Mmalite gburugburu LXD

Tupu anyị amalite ịmepụta na ijikwa arịa LXD, anyị kwesịrị ibido gburugburu LXD site na ịme iwu ahụ.

$ lxc init

Ihe na-esote bụ usoro mkpali ga-enye gị ohere ịtọlite gburugburu gị. Ihe ndabara ga-arụ ọrụ nke ọma, mana nweere onwe gị ịkọwapụta mmasị gị.

Anyị ekepụtala ọdọ mmiri a na-akpọ tec-pool nwere nhọrọ lvm dị ka azụ azụ.

Iji nyochaa gburugburu LXD ị haziela, enwere ọtụtụ iwu ị nwere ike iji. Dịka ọmụmaatụ, iji gosipụta profaịlụ LXD ndabara mebie:

$ lxc profile show default

Iji gosi ihe nkwụnye netwọkụ yana adreesị IPv4 na IPv6, gbaa ọsọ:

$ lxc network list

Ị nwere ike ịga n'ihu warara ya wee gosipụta ozi kacha mma gbasara interface lxdbr0 dị ka ndị a.

$ lxc network show lxdbr0

Ị nwekwara ike nyochaa ọdọ mmiri nchekwa ahụ.

$ lxc storage list

Ị nwere ike nwetakwu nkọwa dị mgbagwoju anya gbasara ọdọ mmiri nchekwa.

$ lxc storage show tec-pool

Ka ịdepụta arịa lxc na-agba ọsọ, mee iwu:

$ lxc list

Ugbu a, anyị enweghị ihe ọ bụla na-agba ọsọ. Yabụ ị ga-enweta tebụl efu nwere naanị akara kọlụm.

Kwụpụ 7: Depụta onyonyo akpa akwa LXC arụgoro arụgoro

Dị ka Docker, ikpo okwu LXC na-enye ebe nchekwa ihe onyonyo ndị emeburu nke ị nwere ike mepụta arịa. Ka ịdepụta onyonyo niile arụgoro arụgoro maka sistemụ arụmọrụ niile gụnyere igwe mebere, mee iwu:

$ lxc image list images: 

Nke a na-ejupụta nnukwu ndepụta ihe onyonyo akpa na igwe mebere maka sistemụ arụmọrụ niile. Iji wedata na nkesa Linux akọwapụtara, jiri syntax:

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

Dịka ọmụmaatụ, ka ịchọọ onyonyo dị maka Rocky Linux, mee iwu:

$ lxc image list images: grep -i rocky

Ọ bụrụ na ị na-achọ onyonyo Debian, mee iwu a:

$ lxc image list images: grep -i debian

Kwụpụ 8: Na-ebunye igbe LXC

Iji malite arịa lxc, jiri syntax:

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

N'ebe a, anyị ga-ebupụta arịa abụọ: tec-container1 sitere na Debian 10 na tec-container2 sitere na Rocky Linux 8.

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

Iji depụta arịa lxc, mebie iwu:

$ lxc list

Ihe mmepụta ahụ na-egosiputa ọtụtụ ozi gbasara arịa. Nke a na-agụnye aha nke arịa, steeti - ma ọ na-agba ọsọ ma ọ bụ kwụsị - IPv4 na adreesị IPv6, ụdị (ma akpa ma ọ bụ igwe mebere), yana ọtụtụ snapshots.

Ka ịdepụta naanị arịa na-agba ọsọ, gbanye iwu:

$ lxc list | grep -i running

N'otu aka ahụ, maka akpa ndị kwụsịrị, mee:

$ lxc list | grep -i stopped

Ị nwere ike nyocha maka ozi akpa na metrik dị ka usoro ịgba ọsọ, CPU & iji ebe nchekwa, na bandwit iji kwuo ole na ole site na iji iwu:

$ lxc info tec-container1 

Kwụpụ 9: Nweta ohere Shell na akpa LXC

Ị nwere ike nweta ohere bash na akpa site na iji syntax:

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

Iji nweta ohere shei na tec-container1, anyị ga-eme iwu:

$ lxc exec tec-container1 bash

Ozugbo ị nwetara ohere shei, ị nwere ike ịmalite imekọrịta ihe na akpa dị ka onye ọrụ mgbọrọgwụ site na ịme iwu shea nkịtị gụnyere imelite usoro dị ka egosiri:

$ apt update

Iji pụọ na akpa ahụ, mee iwu:

$ exit

N'aka nke ọzọ, ịnwere ike ịme iwu ndị a ozugbo na akpa na-enweghị ịnweta shei ahụ site na iji usoro a:

$ lxc exec container-name command

Dịka ọmụmaatụ, ịnwere ike ịme iwu ndị a nke ga-emelite ndepụta ngwugwu, lelee ụdị OS na-agba na akpa Debian wee lelee ụbọchị.

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

Kwụpụ 10: Dọrọ/Pia faịlụ na akpa LXC

Ọrụ ọzọ ị nwere ike ịrụ bụ ibufe faịlụ gaa na site na akpa. Iji gosi nke a, anyị ga-emepụta ndekọ ọhụrụ n'ime akpa LXD wee banye na ya.

# mkdir data && cd data

Ọzọ, anyị ga-emepụta faịlụ nlele ma tinye ụfọdụ data. Iji mee nke a, anyị ga-emepụta faịlụ nlele na onye nchịkọta akụkọ vim

# vim file1.txt

Ọzọ, anyị ga-apịnye ụfọdụ ederede nlele wee chekwaa faịlụ ahụ.

Hello World, Welcome to LXD containers.

Iji dọpụta faịlụ site na akpa gaa na sistemụ nnabata mpaghara, anyị ga-eji syntax:

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

N'okwu a, iwu ga-abụ:

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

Iji bugharịa ma ọ bụ detuo faịlụ site na ndekọ mpaghara gaa na akpa jiri syntax:

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

N'okwu a, anyị nwere faịlụ nlele na ndekọ ụlọ a na-akpọ file2.txt ka a na-eṅomi ya na/root/data/ ụzọ na tec-container2 akpa.

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

Iji kwado ịdị adị nke faịlụ ahụ n'ime akpa ahụ, anyị ga-agba ọsọ:

$ lxc exec tec-container2 ls /root/data

Kwụpụ 11: Kwụsị/Malite/Malitegharịa wee hichapụ arịa LXC

Site n'iji akara ahịrị iwu lxc ị nwere ike ịrụ ọrụ njikwa akpa dị ka ịkwụsị, ịmalite, ịmalitegharị na ihichapụ arịa.

Iji kwụsị akpa lxc, jiri syntax:

$ lxc stop container-name

Dịka ọmụmaatụ, ịkwụsị tec-container1, anyị ga-eme iwu:

$ lxc stop tec-container1

Iji malite akpa lxc, jiri syntax:

$ lxc start container-name

Dịka ọmụmaatụ, ịmalite tec-container1, anyị ga-eme:

$ lxc start tec-container1

Iji malitegharịa akpa abụọ lxc, anyị ga-agba iwu:

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

Ka ihichapụ akpa lxc, ị ga-ebu ụzọ kwụsị akpa ahụ wee hichapụ ya. Dịka ọmụmaatụ, ka ihichapụ, anyị ga-eme iwu ndị a:

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

N'aka nke ọzọ, ịnwere ike ijikọ iwu abụọ a dịka egosiri.

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

Kwụpụ 12: Nweta enyemaka na Nhọrọ-ahịrị iwu LXC

Iji nweta enyemaka na nhọrọ iwu ndị ọzọ nke LXC nyere, mee naanị iwu:

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

Nke ahụ bụ imikpu n'ime arịa LXD yana otu ị ga-esi mepụta na jikwaa ha site na iji ngwa ngwa-ahịrị iwu lxc. Anyị tụkwasịrị obi na ịchọtara ntuziaka a aka.