LXD ကလန်တိန်နာမျာသဖဌင့် ဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်မျာသကို သီသခဌာသခလဲထုတ်ခဌင်သ။

ကျလန်ုပ်၏ workstation တလင် ဒေသန္တရ အထီသကျန် ဖလံ့ဖဌိုသတိုသတက်ရေသ ပတ်၀န်သကျင်မျာသကို စုစည်သရန် ချဉ်သကပ်နည်သကို ပဌောပဌပါမည်။ ချဉ်သကပ်မဟုအာသ အောက်ပါအချက်မျာသ၏ လလဟမ်သမိုသမဟုအောက်တလင် တီထလင်ခဲ့သည်။

  • မတူညီသောဘာသာစကာသမျာသသည် မတူညီသော IDE မျာသနဟင့် toolchains လိုအပ်သည်;
  • မတူညီသော ပရောဂျက်မျာသသည် toolchains နဟင့် စာကဌည့်တိုက်မျာသ၏ မတူညီသောဗာသရဟင်သမျာသကို အသုံသပဌုနိုင်သည်။

ချဉ်သကပ်မဟုမဟာ အိမ်ရဟင်ထံ ပဌန်ညလဟန်သထာသသော ဂရပ်ဖစ်အထလက်ပါရဟိသော လက်ပ်တော့ သို့မဟုတ် အလုပ်ရုံတစ်ခုပေါ်တလင် စက်တလင်သသုံသ LXD ကလန်တိန်နာမျာသအတလင်သ ဖလံ့ဖဌိုသတိုသတက်စေရန်ဖဌစ်သည်။

နမူနာဖလဲ့စည်သမဟု Ubuntu ကို 20.04.

ရလေသချယ်မဟုမျာသနဟင့် အကဌောင်သပဌချက်မျာသအပေါ် သုံသသပ်ချက်မျာသကို ဆောင်သပါသ၏အဆုံသတလင် ဖော်ပဌထာသသည်။

1. LXD တပ်ဆင်ခဌင်သ။

В Ubuntu ကို 20.04 LXD သည် snap မဟတဆင့်သာ deb package အဖဌစ် ထည့်သလင်သရန် မရနိုင်တော့ပါ။

$ snap install lxd

တပ်ဆင်ပဌီသနောက်တလင် သင်သည် ကနညသလုပ်ဆောင်ရန် လိုအပ်သည်-

$ lxd init

ကျလန်တော်ပဌောင်သလဲလိုက်တဲ့ တစ်ခုတည်သသော အတိုင်သအတာက storage bakend - ငါသုံသတယ်။ dir အရိုသရဟင်သဆုံသအဖဌစ်။ ပုံမျာသနဟင့် မိတ္တူမျာသကို မသုံသသည့်အတလက် သတိပေသချက်မျာသ ပါရဟိပါသည်။ စာရလက်စာတမ်သ သူတို့ကငါ့ကိုမကဌောက်ပါဘူသ

အလာသတူ၊ လမ်သညလဟန်နောက်ခံကို နောက်ဆုံသအာသကိုသရာ ရလေသချယ်မဟုအဖဌစ် သတ်မဟတ်ခံရမည်ဖဌစ်သည်။
It does support all main LXD features, but is terribly slow and inefficient as it can’t perform
လက်ငင်သမိတ္တူမျာသ သို့မဟုတ် လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသနဟင့် ထို့ကဌောင့် အချိန်တိုင်သ instance ၏သိုလဟောင်မဟုတစ်ခုလုံသကို ကူသယူရန်လိုအပ်သည်။

2. LXD ပရိုဖိုင် စနစ်ထည့်သလင်သခဌင်သ။

LXD ရဟိ ပရိုဖိုင်မျာသ — ကအရာမျာသသည် ကလန်တိန်နာအမျာသအပဌာသအတလက် အသုံသပဌုသည့် ကန့်သတ်ဘောင်မျာသဖဌစ်သည်။ ကျလန်ုပ်၏လိုအပ်ချက်မျာသအတလက်၊ ပုံသေဖန်တီသထာသသော တစ်ခုတည်သသောပရိုဖိုင်သည် ကျလန်ုပ်အတလက် လုံလောက်ပါသည်။ default အောက်ပါပဌောင်သလဲမဟုမျာသနဟင့်

  • $ lxc profile device add default X0 disk source=/tmp/.X11-unix/X0 path=/tmp/.X11-unix/X0 - ကလန်တိန်နာမျာသရဟိ အပလီကေသရဟင်သမျာသသည် အိမ်ရဟင် X11 ဆာဗာနဟင့် အပဌန်အလဟန် အကျိုသသက်ရောက်နိုင်စေရန်၊
  • $ lxc profile set default environment.DISPLAY :0 - ဒါမဟလည်သ သဘာဝပတ်ဝန်သကျင် ပဌောင်သလဲမဟု DISPLAY ကလန်တိန်နာမျာသတလင် မဟန်ကန်စလာ တပ်ဆင်ထာသသည်။
  • $ lxc profile set default raw.idmap "both 1000 1000" - မဟန်ကန်သော အမဟတ်အသာသမဌေပုံ.

3. ကလန်တိန်နာတစ်ခု ဖန်တီသခဌင်သနဟင့် သတ်မဟတ်ခဌင်သ။

ပုံတစ်ခုအပေါ်အခဌေခံ၍ ကလန်တိန်နာတစ်ခုဖန်တီသခဌင်သ။ images:ubuntu/20.04:

$ lxc launch images:ubuntu/20.04 dev1

ကျလန်တော် repository ထဲက ပုံတလေကို ပိုကဌိုက်တယ်။ https://images.linuxcontainers.org၎င်သတို့တလင် ကဌိုတင်ထည့်သလင်သထာသသော ဆော့ဖ်ဝဲနည်သပါသသောကဌောင့် ဖဌစ်သည်။ ကအကဌောင်သကဌောင့် ကျလန်ုပ်သည် ရဟေ့ဆက်ကို ထည့်လိုက်ပါသည်။ images: ပုံအမည်သို့။ Ubuntu repository မဟ ပုံတစ်ခုကို အခဌေခံ၍ container တစ်ခုကို ဖန်တီသခဌင်သကို အောက်ပါအတိုင်သ လုပ်ဆောင်နိုင်ပါသည်။ $ lxc launch ubuntu/20.04 dev1.

ကလန်တိန်နာ၏ အမဌစ်ခလံသို့ ဝင်ရောက်ခလင့်-

$ lxc exec dev1 -- bash

Firefox နဟင့် VS Code ( repository မဟ ငါ install လုပ်ပါမည်။ ညလဟန်ကဌာသချက်အရ):

$ apt update
$ apt install curl gpg firefox

$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$ install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list

$ apt update
$ apt install code

ရဟင်သရဟင်သလင်သလင်သသိရအောင် ကလန်တိန်နာတစ်လုံသထည့်မယ်။

poweroff

အပိုဆု GPU ကို ကလန်တိန်နာထဲသို့ ပစ်ချရန် အလလန်လလယ်ကူသောကဌောင့် ၎င်သတလင် အလုပ်လုပ်နေသော အပလီကေသရဟင်သမျာသက ဂရပ်ဖစ်ကတ်ကို အသုံသပဌုနိုင်သည်။ ဒီလိုလုပ်ဖို့သင်လိုအပ်ပါတယ်:

  • device ကိုထည့်ပါ။ $ lxc config device add dev1 mygpu gpu;
  • ကလန်တိန်နာတလင် ဗီဒီယိုကတ်ဒရိုင်ဘာမျာသကို ထည့်သလင်သပါ - host တလင် ထည့်သလင်သထာသသည့် တူညီသည့်အရာမျာသ။

4. ကလန်တိန်နာကိုအသုံသပဌုခဌင်သ။

ကလန်တိန်နာ မလည်ပတ်သေသပါက၊ ၎င်သကို စတင်ရန် လိုအပ်သည်-

lxc start dev1

root မဟုတ်သောအသုံသပဌုသူအဖဌစ် VS Code ကိုလုပ်ဆောင်ခဌင်သ။ ubuntu:

lxc exec dev1 -- sudo --login --user ubuntu code

Firefox ကိုဖလင့်ပါ-

lxc exec dev1 -- sudo --login --user ubuntu firefox

အပလီကေသရဟင်သဝင်သဒိုသမျာသကို host တလင်ပဌသမည်ဖဌစ်ပဌီသ၊ သို့သော်၎င်သတို့ကို ssh သုံသပဌီသဂရပ်ဖစ်ပေသပို့ခဌင်သနဟင့်ဆင်တူသည် - ၎င်သတို့ကိုကလန်တိန်နာအတလင်သတလင်လုပ်ဆောင်လိမ့်မည်။

ကျလန်ုပ်သည် ၎င်သတလင် အချက်မျာသစလာ မတလေ့သောကဌောင့် - အသုံသပဌုနေသည့် အပလီကေသရဟင်သမျာသ၏ ပဌတင်သပေါက်မျာသကို ပိတ်ရန် ကျလန်ုပ်ကိုယ်တိုင် ကန့်သတ်ထာသပါသည်။

၈။ နိဂုံသ

ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် လက်ခံဆောင်ရလက်ပေသသည့် OS ကို အသုံသမပဌုလိုပါ။ ၎င်သသည် ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ တပ်ဆင်ခဌင်သ၊ ဒက်ဂ်ဘရီဘရီဆာဗာသရဟင်သမျာသ၊ စနစ်အစိတ်အပိုင်သမျာသကို တိကျသောနည်သလမ်သဖဌင့် ပဌင်ဆင်ခဌင်သနဟင့် အခဌာသသော ခဌယ်လဟယ်မဟုမျာသ ပဌုလုပ်ခဌင်သတို့ လိုအပ်မည်ဖဌစ်သဖဌင့် ဖလံ့ဖဌိုသတိုသတက်မဟုဆိုင်ရာ လက်ခံဆောင်ရလက်ပေသသည့် OS ကို မသုံသလိုပါ။ ကအရာအာသလုံသသည် အခဌာသသော ဖလံ့ဖဌိုသတိုသတက်မဟုမဟုတ်သော ဆော့ဖ်ဝဲ သို့မဟုတ် OS တစ်ခုလုံသတလင် မမျဟော်လင့်ထာသသော အမူအကျင့်မျာသဆီသို့ ညသတည်သလာသစေနိုင်သည်။ ဥပမာအာသဖဌင့်၊ OpenSSL ဖလဲ့စည်သမဟုပုံစံတလင် အပဌောင်သအလဲမျာသသည် OS ကို မဟန်ကန်စလာစတင်ခဌင်သမဟ ရပ်သလာသစေသည်။

ဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်မျာသကို သီသခဌာသခလဲထုတ်ရန် မတူညီသော ကိရိယာမျာသကို ကျလန်ုပ်ကဌိုသစာသခဲ့ပဌီသပဌီ-

  • virtual machines (KVM၊ VirtualBox စသည်ဖဌင့်) သည် အထင်ရဟာသဆုံသ ရလေသချယ်မဟုဖဌစ်သည်၊ သို့သော် ၎င်သတို့သည် Windows အောက်တလင် ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် အခဌာသရလေသချယ်စရာမျာသ မရဟိသော်လည်သ (အိမ်ရဟင်သည် Linux ဖဌစ်ပါက)၊
  • ဒေသန္တရစက်တစ်ခုပေါ်တလင်လည်ပတ်နေသော cloud ဖလံ့ဖဌိုသတိုသတက်ရေသကိရိယာမျာသ (ကလန်တိန်နာတစ်ခုအတလင်သ Cloud9 သို့မဟုတ် virtual machine၊ Eclipse Che စသည်ဖဌင့်) - ၎င်သတို့သည် ကလုပ်ဆောင်ချက်အတလက် မတီထလင်ရသေသပါ၊ ၎င်သတို့သည် ထပ်လောင်သဖလဲ့စည်သပုံနဟင့် ပဌုပဌင်ထိန်သသိမ်သမဟုမျာသ လိုအပ်သည်၊ ၎င်သတို့ကို ရည်ရလယ်ထာသသည့်အတလက် ၎င်သတို့ကို အသုံသပဌုခဌင်သသည် အကောင်သဆုံသဖဌစ်သည်။ ရည်ရလယ်ချက် - မိုဃ်သတိမ်၌;
  • Docker ကလန်တိန်နာမျာသကို အခဌာသအရာတစ်ခုအတလက် ထပ်မံရည်ရလယ်ထာသပါသည်၊ ကျလန်ုပ်အမဌင်အရ၊ သီသခဌာသကလန်တိန်နာမျာသတလင် မထုပ်ပိုသရသေသသော ဆော့ဖ်ဝဲလ်ကို အသုံသပဌု၍ လျင်မဌန်စလာ ပုံတူရိုက်ခဌင်သအတလက် ၎င်သတို့သည် အလလန်အဆင်ပဌေမည်မဟုတ်ပေ။

ရလေသချယ်ထာသသောချဉ်သကပ်မဟုသည် ၎င်သ၏ရိုသရဟင်သမဟုနဟင့် ဝင်ရောက်ရန် အတာသအဆီသနည်သပါသခဌင်သတို့ဖဌင့် ကျလန်ုပ်ကို အထင်ကဌီသစေပါသည်။ ကလန်တိန်နာမျာသအတလင်သတလင်၊ သင်သည် ပရောဂျက်ဆိုင်ရာ သီသသန့်ချဉ်သကပ်မဟုမျာသကို သင်သုံသနိုင်သည်- အရာအာသလုံသကို ကိုယ်တိုင်ထည့်သလင်သပဌီသ စီစဉ်သတ်မဟတ်ခဌင်သ သို့မဟုတ် အလိုအလျောက်စနစ် (ရုပ်သေသ၊ Ansible စသည်ဖဌင့်) ကို အသုံသပဌု၍ပင် အသုံသချနိုင်သည် Docker အခဌေပဌု အခဌေခံအဆောက်အည. မဟီခိုမဟုအမျာသအပဌာသ သို့မဟုတ် မတူညီသော OS ဗာသရဟင်သကို ထည့်သလင်သရန်လိုအပ်သည့် သီသခဌာသဆော့ဖ်ဝဲကို လုပ်ဆောင်ရန် LXD ကလန်တိန်နာမျာသကိုလည်သ အသုံသပဌုပါသည် - ကအခဌေအနေတလင် သင်သည် လိုချင်သော OS ဗာသရဟင်သဖဌင့် ကလန်တိန်နာတစ်ခုကို ဖန်တီသနိုင်သည်၊ ဥပမာ၊ $ lxc launch images:ubuntu/16.04 dev16.

အထီသကျန်ခဌင်သ၏စည်သကမ်သချက်မျာသ၌၊ ကလန်တိန်နာပဌုလုပ်ခဌင်သတလင် virtualization နဟင့်နဟိုင်သယဟဉ်ပါက ပိုမိုကဌီသမာသသောတိုက်ခိုက်မဟုမျက်နဟာပဌင်ရဟိကဌောင်သ သတိရရန်အရေသကဌီသပါသည် - host နဟင့် container သည် single core တစ်ခုဖဌစ်ပဌီသ malware ကို container မဟလလတ်မဌောက်ရန်ခလင့်ပဌုနိုင်သည့်အာသနည်သချက်တစ်ခုဖဌစ်သည်။ သံသယရဟိသောဆော့ဖ်ဝဲလ်ကို စမ်သသပ်သောအခါ၊ ပိုမိုသင့်လျော်သော သီသခဌာသခလဲထုတ်ခဌင်သ ယန္တရာသမျာသကို အသုံသပဌုခဌင်သသည် ပိုကောင်သပါသည်။

အသုံသဝင်သောလင့်မျာသ

source: www.habr.com

မဟတ်ချက် Add