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

Docker ဆိုတာကို နားလည်ဖို့ အရင်ဆုံး ဆော့ဖ်ဝဲလ် အကြောင်းကို နည်းနည်း ပြောပြပါရစေ။ သင်ဟာ ဖုန်းထဲမှာ ဂိမ်းတစ်ခု ဒါမှမဟုတ် အက်ပ်တစ်ခု သုံးတယ်ဆိုပါစို့။ အဲဒီအက်ပ်က အလုပ်လုပ်ဖို့ သူ့အတွက် လိုအပ်တဲ့ အရာတွေ—ဆိုပါစို့ သူသုံးမယ့် ပရိုဂရမ်ဘာသာစကား၊ အထူး ကိရိယာတွေ (libraries)—လိုပါတယ်။ ဒါပေမယ့် တစ်ခါတလေ သင့်ဖုန်းမှာ အဲဒီအက်ပ်က အလုပ်လုပ်ပေမယ့် သူငယ်ချင်းရဲ့ ဖုန်းမှာ အလုပ်မလုပ်တာမျိုး ဖြစ်တတ်ပါတယ်။ ဘာကြောင့်လဲဆိုတော့ ဖုန်းနှစ်လုံးရဲ့ အတွင်းပိုင်း ပတ်ဝန်းကျင်က မတူညီလို့ပါ။ ဒီမှာ Docker က ဝင်လာပါတယ်။
Docker ဆိုတာ ဆော့ဖ်ဝဲလ်တစ်ခုကို အလုပ်လုပ်ဖို့ လိုအပ်တဲ့ အရာအားလုံးကို သေတ္တာတစ်လုံးထဲမှာ ထည့်ပြီး ထုပ်ပိုးပေးတဲ့ နည်းပညာတစ်ခုလို့ မြင်လိုက်ပါ။ ဒီသေတ္တာကို “Container” လို့ ခေါ်ပါတယ်။ ဥပမာ၊ သင်ဟာ မုန့်ဖုတ်ဖို့ ပစ္စည်းတွေ သယ်မယ်ဆိုရင် အိမ်ကနေ မုန့်ဖုတ်စက်၊ ဂျုံမှုန့်၊ သကြား၊ ဆီ အကုန်လုံးကို သေတ္တာတစ်လုံးထဲ ထည့်ပြီး သယ်သွားတယ် မဟုတ်လား။ အဲဒီလို သေတ္တာကို ဘယ်နေရာမှာ ဖွင့်ဖွင့် မုန့်ဖုတ်ဖို့ လိုတာ အကုန်ပါနေတာမို့ ဘယ်နေရာမှာပဲ ဖြစ်ဖြစ် အဆင်ပြေပါတယ်။ Docker ကလည်း အဲဒီလိုပါပဲ—အက်ပ်တစ်ခုကို Container ထဲမှာ ထည့်ပြီး ဘယ်ကွန်ပျူတာမှာ ဖွင့်ဖွင့် အလုပ်လုပ်အောင် လုပ်ပေးတာပါ။
ဒါကို နည်းနည်း ပိုရှင်းအောင် ဥပမာနဲ့ ထပ်ပြောပြပါမယ်။ သင်ဟာ သူငယ်ချင်းကို ဂိမ်းတစ်ခု ပေးမယ်ဆိုပါစို့။ ဒါပေမယ့် အဲဒီဂိမ်းက အလုပ်လုပ်ဖို့ သူ့ဖုန်းမှာ အထူး ဆော့ဖ်ဝဲလ်တွေ ထည့်ထားဖို့ လိုတယ်။ ဒါဆိုရင် သူ့ဖုန်းမှာ အဲဒီဆော့ဖ်ဝဲလ်တွေ မရှိရင် ဂိမ်းက အလုပ်မလုပ်ဘူး မဟုတ်လား? ဒါကို Docker နဲ့ လုပ်မယ်ဆိုရင် သင်က ဂိမ်းကို သေတ္တာတစ်လုံးထဲမှာ ထည့်ပြီး အဲဒီဂိမ်းအတွက် လိုအပ်တဲ့ ဆော့ဖ်ဝဲလ်တွေ အကုန်ပါအောင် ထည့်ပေးလိုက်ပါတယ်။ အဲဒီသေတ္တာကို သူငယ်ချင်းဆီ ပို့လိုက်ရင် သူက ဖွင့်ပြီး ဘာမှ ထပ်မလုပ်ပဲ ဂိမ်းကို ချက်ချင်း ကစားလို့ ရသွားပါပြီ။ ဒါက Docker ရဲ့ အလုပ်လုပ်ပုံပါ။
Docker ဘာကြောင့် အရေးကြီးလဲ?
အခု သင်ဟာ “ဒါဆို Docker က ဘာကောင်းလဲ?” လို့ တွေးနေမယ် ထင်ပါတယ်။ ဒါကို နည်းနည်း ရှင်းပြပါမယ်။ ဆော့ဖ်ဝဲလ်တွေကို တည်ဆောက်တဲ့ သူတွေအတွက် အရင်က ပြဿနာတစ်ခုက သူတို့ရဲ့ ကွန်ပျူတာမှာ အလုပ်လုပ်တဲ့ အက်ပ်က တခြားနေရာမှာ အလုပ်မလုပ်တာပါ။ ဥပမာ၊ သင်ဟာ ဝက်ဘ်ဆိုက်တစ်ခု လုပ်ပြီး သင့်ကွန်ပျူတာမှာ အဆင်ပြေပေမယ့် ဆာဗာမှာ တင်တဲ့အခါ မပေါ်တာမျိုး ဖြစ်တတ်ပါတယ်။ Docker က ဒီပြဿနာကို ဖြေရှင်းပေးတယ်။ အက်ပ်ကို Container ထဲမှာ ထည့်လိုက်ရင် ဘယ်နေရာမှာ ဖွင့်ဖွင့် အလုပ်လုပ်မှာ သေချာသွားတာပါ။
ဒါ့အပြင် Docker က အရမ်းမြန်တယ်။ သာမန် ကွန်ပျူတာတစ်လုံး အသစ်ဖွင့်ဖို့ မိနစ်အနည်းငယ် ကြာနိုင်ပေမယ့် Docker Container တစ်ခုက စက္ကန့်ပိုင်းလောက်ပဲ ကြာပါတယ်။ ဒါကြောင့် အက်ပ်တွေကို အမြန် စမ်းသပ်ချင်တယ်၊ အမြန်သုံးချင်တယ်ဆိုရင် Docker က အရမ်းအဆင်ပြေပါတယ်။
Docker ကို ဘယ်သူတွေ သုံးလဲ?
Docker ကို ဆော့ဖ်ဝဲလ် လုပ်တဲ့ သူတွေ အများကြီး သုံးပါတယ်။ ဥပမာ၊ သင်ဟာ ဖုန်းဂိမ်းတစ်ခု လုပ်တဲ့ သူဆိုရင် အဲဒီဂိမ်းကို Docker ထဲမှာ ထည့်ပြီး သူငယ်ချင်းတွေဆီ ပို့ပြီး စမ်းကစားခိုင်းလို့ ရပါတယ်။ ဒါမှမဟုတ် ကုမ္ပဏီကြီးတွေဆိုရင် သူတို့ရဲ့ ဝက်ဘ်ဆိုက်၊ အက်ပ်တွေကို Docker နဲ့ ထုပ်ပိုးပြီး သန်းနဲ့ချီတဲ့ လူတွေ သုံးနိုင်အောင် လုပ်ထားပါတယ်။ Netflix တို့၊ Amazon တို့လို နာမည်ကြီး ကုမ္ပဏီတွေလည်း Docker ကို သုံးနေကြတာပါ။
ဘယ်လို စသုံးလဲ?
Docker ကို စမ်းသုံးကြည့်ချင်တယ်ဆိုရင် သင့်ကွန်ပျူတာမှာ Docker ဆော့ဖ်ဝဲလ်ကို ထည့်လိုက်ရုံပါပဲ။ ပြီးရင် သင်လုပ်ချင်တဲ့ အက်ပ်ကို Container ထဲမှာ ထည့်ဖို့ ညွှန်ကြားချက်လေး ရေးပြီး ဖွင့်လိုက်ရုံပါ။ ဥပမာ၊ သင်ဟာ ဝက်ဘ်ဆိုက်လေး တစ်ခု လုပ်ချင်တယ်ဆိုရင် Docker ကို သုံးပြီး အဲဒီဝက်ဘ်ဆိုက်ကို သေတ္တာထဲ ထည့်လိုက်၊ ပြီးရင် ဘယ်သူ့ကွန်ပျူတာမှာပဲ ဖြစ်ဖြစ် ဖွင့်ပြီး သုံးလို့ ရပါတယ်။ အစကနေ အဆုံး လွယ်လွယ်လေးပါ။
ဒီလောက်ဆိုရင် “Docker ဆိုတာ ဘာလဲ?” ဆိုတာ ရှင်းသွားမယ်ထင်ပါတယ်။ ရိုးရိုးရှင်းရှင်းပြောရရင် Docker က ဆော့ဖ်ဝဲလ်တွေကို သေတ္တာထဲမှာ ထည့်ပြီး ဘယ်နေရာမှာ ဖွင့်ဖွင့် အလုပ်လုပ်အောင် လုပ်ပေးတဲ့ အရာပါ။ မြန်တယ်၊ လွယ်တယ်၊ ပြီးတော့ အဆင်ပြေတယ်။