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.