Docker Desktop နဲ့ Docker Engine အကြားကွာဟချက်
မင်္ဂလာပါ စာဖတ်သူတို့ရေ၊ Docker အကြောင်း ပြောလာရင်း “Docker Desktop” နဲ့ “Docker Engine” ဆိုတဲ့ စကားလုံးနှစ်ခုကို ကြားဖူးပြီးပြီလား? အရင်အပိုင်းတွေမှာ Docker Engine ကို “Docker ရဲ့ နှလုံးသား” လို့ ပြောခဲ့သလို၊ Docker Desktop ကိုလည်း macOS နဲ့ Windows မှာ Install လုပ်တဲ့အခါ သုံးခဲ့တာကို မှတ်မိမယ်ထင်ပါတယ်။ ဒါပေမယ့် ဒီနှစ်ခုက တူသလိုလို မတူသလိုလိုနဲ့ ဘာကွာသလဲဆိုတာ ရှုပ်သွားတတ်ပါတယ်။ ဒီတစ်ခါတော့ ဒီနှစ်ခုအကြား ကွာဟချက်ကို ရိုးရှင်းအောင် ရှင်းပြပေးပါမယ်။ ဥပမာလေးတွေ ထည့်ပြီး နားလည်လွယ်အောင် လုပ်သွားမှာမို့ စိတ်ပူစရာ မလိုပါဘူး။ အဆင်သင့်ဖြစ်ပြီလား? စပြောကြရအောင်။

Docker Engine ဆိုတာ ဘာလဲ?
ပထမဆုံး Docker Engine ကနေ ပြန်စကြည့်ရအောင်။ Docker Engine ဆိုတာ Docker ရဲ့ အဓိက အလုပ်လုပ်တဲ့ အစိတ်အပိုင်းပါ။ ဒါက အက်ပ်တွေကို Container ထဲမှာ ထည့်ဖို့၊ အဲဒီ Container တွေကို ဖွင့်ဖို့၊ စီမံဖို့ အကုန်လုပ်ပေးတဲ့ အရာပါ။ အရင်အပိုင်းမှာ ပြောခဲ့သလို Docker Engine ကို မုန့်ဖုတ်စက်တစ်လုံးလို့ မြင်လိုက်ပါ။ မုန့်ဖုတ်စက်က ဂျုံမှုန့်၊ သကြား၊ ဆီတွေကို ရောပြီး မုန့်ဖုတ်ပေးသလို၊ Docker Engine ကလည်း အက်ပ်တစ်ခုကို အလုပ်လုပ်ဖို့ လိုအပ်တဲ့ အရာတွေကို စုပြီး Container အဖြစ် ဖန်တီးပေးပါတယ်။
Docker Engine က အဓိကအားဖြင့် Linux မှာ အလုပ်လုပ်ဖို့ ဒီဇိုင်းထုတ်ထားတာပါ။ ဘာကြောင့်လဲဆိုတော့ Container တွေက Linux ရဲ့ အထူး နည်းပညာ (Linux Kernel Features ဖြစ်တဲ့ namespaces နဲ့ cgroups) တွေကို အသုံးပြုပြီး အလုပ်လုပ်လို့ပါ။ ဒါကြောင့် Linux မှာ Docker Engine ကို တိုက်ရိုက် Install လုပ်ပြီး သုံးလို့ ရပါတယ်။ ဒါပေမယ့် သူက သက်သက်သာသာ လုပ်ပေးတဲ့ အရာပါ—အပိုဆောင်း အလှအပတွေ၊ ခလုတ်တွေ မပါဘဲ အဓိက အလုပ်ကိုပဲ လုပ်ပေးတယ်လို့ ပြောလို့ ရပါတယ်။
Docker Desktop ဆိုတာ ဘာလဲ?
အခု Docker Desktop ကို ကြည့်ရအောင်။ Docker Desktop ဆိုတာ macOS နဲ့ Windows မှာ Docker ကို သုံးဖို့ အထူးပြုလုပ်ထားတဲ့ ဆော့ဖ်ဝဲလ်တစ်ခုပါ။ ဒါကို သင်ဟာ မုန့်ဖုတ်စက်တစ်လုံးကို ပိုလှအောင်၊ သုံးရတာ ပိုလွယ်အောင် ခလုတ်တွေ၊ မျက်နှာပြင်လေးတွေ ထည့်ပြီး အဆင့်မြှင့်ထားတာလို့ မြင်လိုက်ပါ။ Docker Desktop ထဲမှာ Docker Engine ပါပါတယ်။ ဒါပေမယ့် သူက Engine တစ်ခုတည်းမဟုတ်ဘဲ အပိုဆောင်း အရာတွေ ထပ်ထည့်ပြီး macOS နဲ့ Windows မှာ အဆင်ပြေအောင် လုပ်ပေးထားတာပါ။
ဘာကြောင့် ဒီလိုလဲဆိုတော့ macOS နဲ့ Windows က Linux မဟုတ်လို့ Docker Engine ကို တိုက်ရိုက် သုံးလို့ မရပါဘူး။ Docker Desktop က အဲဒီအတွက် အသေးလေး Linux စနစ်တစ်ခု (Linux Virtual Machine) ကို ဖန်တီးပြီး အဲဒီထဲမှာ Docker Engine ကို အလုပ်လုပ်အောင် လုပ်ပေးပါတယ်။ ဒါ့အပြင် သုံးရတာ ပိုလွယ်အောင် ခလုတ်တွေ၊ မျက်နှာပြင်လေးတွေ (Graphical User Interface) ပါပေးထားပါတယ်။ ဥပမာ၊ သင်ဟာ Windows မှာ Docker Desktop ကို ဖွင့်လိုက်ရင် Taskbar မှာ Docker အိုင်ကွန်လေး ပေါ်လာပြီး အဲဒီကနေ လွယ်လွယ်ကူကူ စီမံလို့ ရပါတယ်။
ဘယ်လို ကွာသလဲ?
အခု Docker Desktop နဲ့ Docker Engine က ဘယ်လို ကွာသလဲဆိုတာကို တစ်ခုချင်း နှိုင်းကြည့်ရအောင်။
- ဘယ်နေရာမှာ အလုပ်လုပ်လဲ (Platform):
- Docker Engine: Linux မှာ တိုက်ရိုက် အလုပ်လုပ်ပါတယ်။ macOS နဲ့ Windows မှာ သုံးဖို့ဆိုရင် အပိုဆောင်း အရာတွေ (ဥပမာ Virtual Machine) လိုပါတယ်။
- Docker Desktop: macOS နဲ့ Windows အတွက် အထူးပြုထားပြီး အဲဒီထဲမှာ Docker Engine ကို ထည့်ပြီး Linux Virtual Machine ပါ အလိုအလျောက် ဖန်တီးပေးပါတယ်။ ဥပမာ၊ Docker Engine က မုန့်ဖုတ်စက်တစ်ခုသက်သက်ဆိုရင် Docker Desktop က အဲဒီစက်ကို အိမ်ထဲမှာ ထားပြီး ခလုတ်တွေ၊ အလင်းမီးတွေ ထည့်ပေးထားတဲ့ အဆင့်မြှင့် ဗားရှင်းလို့ မြင်ပါ။
- ဘာတွေ ပါဝင်လဲ (Components):
- Docker Engine: ဒါက အဓိက အလုပ်လုပ်တဲ့ အပိုင်းပဲ ပါပါတယ်။ သင်ဟာ Terminal မှာ ညွှန်ကြားချက်တွေ (Commands) ရိုက်ပြီး သုံးရပါတယ်။ ဥပမာ၊ “docker run” လို့ ရိုက်မှ Container တစ်ခု ဖွင့်ပေးမှာပါ။
- Docker Desktop: Engine အပြင် အပိုဆောင်း ကိရိယာတွေ ပါပါတယ်။ Graphical User Interface (GUI) ပါတာမို့ ခလုတ်တွေ နှိပ်ပြီး လွယ်လွယ်ကူကူ သုံးလို့ ရပါတယ်။ ဒါ့အပြင် Docker Compose လို အရာတွေလည်း အလိုအလျောက် ပါလာပါတယ်။ ဥပမာ၊ Engine က မုန့်ဖုတ်စက်ကို လက်နဲ့ ထိန်းရမယ်ဆိုရင် Desktop က ခလုတ်တွေ နှိပ်လိုက်ရုံနဲ့ အလိုအလျောက် ဖုတ်ပေးတဲ့ စက်မျိုးပါ။
- ဘယ်သူတွေ သုံးဖို့ အဆင်ပြေလဲ (Use Case):
- Docker Engine: Linux ကို ကျွမ်းကျင်တဲ့ သူတွေ၊ ဆာဗာတွေမှာ အသုံးပြုမယ့် သူတွေ၊ ဒါမှမဟုတ် Terminal နဲ့ အလုပ်လုပ်ရတာ အဆင်ပြေတဲ့ သူတွေအတွက် သင့်တော်ပါတယ်။ သူက ပေါ့ပါးပြီး အရင်းအမြစ် (Resources) သိပ်မယူပါဘူး။
- Docker Desktop: macOS နဲ့ Windows သုံးတဲ့ သူတွေ၊ အသစ်စတင်သူတွေ၊ ဒါမှမဟုတ် ခလုတ်နှိပ်ပြီး လွယ်လွယ် သုံးချင်သူတွေအတွက် အဆင်ပြေပါတယ်။ ဒါပေမယ့် သူက Engine ထက် နေရာပိုယူပြီး RAM နဲ့ CPU ကို ပိုသုံးပါတယ်။ ဥပမာ၊ သင်ဟာ မုန့်ဖုတ်စက်ကို လက်နဲ့ ထိန်းချင်ရင် Engine က သင့်တော်မယ်။ ဒါပေမယ့် ခလုတ်နှိပ်ပြီး လွယ်လွယ်ဖုတ်ချင်ရင် Desktop က ပိုအဆင်ပြေမယ်။
- ဘယ်လို ရလဲ (Installation):
- Docker Engine: Linux မှာ တိုက်ရိုက် Install လုပ်လို့ ရပါတယ်။ ဥပမာ၊ Ubuntu မှာ “sudo apt install docker-ce” လို့ ရိုက်ရုံနဲ့ ရပါတယ်။
- Docker Desktop: macOS နဲ့ Windows မှာ ဒေါင်းလုပ်ဆွဲပြီး ထည့်ရပါတယ်။ ဒါက အက်ပ်တစ်ခု ထည့်သလို လွယ်ပေမယ့် အထဲမှာ Engine နဲ့ Virtual Machine ပါ ပါလာတာပါ။
ဘယ်ဟာကို ရွေးသင့်လဲ?
ဒီနှစ်ခုကို ဘယ်လို ရွေးရမလဲဆိုတာ သင်ဘာလုပ်မယ်၊ ဘယ်စနစ်ကို သုံးမယ်ဆိုတာပေါ် မူတည်ပါတယ်။
- သင်ဟာ Linux ဆာဗာတစ်လုံးမှာ အလုပ်လုပ်မယ်ဆိုရင် Docker Engine က ပိုမြန်ပြီး ပေါ့ပါးလို့ သင့်တော်ပါတယ်။
- ဒါပေမယ့် သင်ဟာ MacBook ဒါမှမဟုတ် Windows PC မှာ အက်ပ်တွေ စမ်းသပ်ချင်တယ်၊ Terminal နဲ့ သိပ်မရင်းနှီးဘူးဆိုရင် Docker Desktop က ပိုအဆင်ပြေပါတယ်။
ဥပမာ၊ သင်ဟာ စက်ဘီးတစ်စီးကို အလုပ်လုပ်ဖို့ပဲ လိုချင်ရင် ဘီးနှစ်ဘီးနဲ့ ကိုယ်ထည်ပဲ ရှိရင် ရပြီ (Engine)။ ဒါပေမယ့် အလှတွေ၊ သက်တောင့်သက်သာ ဖြစ်မယ့် ထိုင်ခုံတွေ ထည့်ချင်ရင် အဆင့်မြှင့် ဗားရှင်း (Desktop) ကို ယူရမှာပါ။
ဒီလောက်ဆိုရင် Docker Desktop နဲ့ Docker Engine အကြား ဘယ်လို ကွာသလဲဆိုတာ ရှင်းသွားမယ်ထင်ပါတယ်။ ရိုးရိုးရှင်းရှင်းပြောရရင် Engine က အဓိက အလုပ်လုပ်တဲ့ အရာ၊ Desktop က အဲဒီ Engine ကို macOS နဲ့ Windows မှာ သုံးလွယ်အောင် ထပ်ထည့်ပေးထားတာပါ။