Docker နားလည်ခြင်း။

ဝဘ်ပရောဂျက်များ၏ ဖွံ့ဖြိုးတိုးတက်မှု/ပေးပို့ခြင်းလုပ်ငန်းစဉ်ကို တည်ဆောက်ရန် ယခု Docker ကို လပေါင်းများစွာ အသုံးပြုနေပါသည်။ Habrakhabr စာဖတ်သူများကို Docker အကြောင်း နိဒါန်းဆောင်းပါး၏ ဘာသာပြန်ချက်ကို ကျွန်ုပ် ကမ်းလှမ်းပါသည်။ "Docker နားလည်ခြင်း".

Docker ဆိုတာဘာလဲ။

Docker သည် အပလီကေးရှင်းများ ဖန်တီးခြင်း၊ ပေးပို့ခြင်းနှင့် လည်ပတ်ခြင်းအတွက် ပွင့်လင်းသော ပလပ်ဖောင်းတစ်ခုဖြစ်သည်။ Docker သည် သင့်အပလီကေးရှင်းများကို ပိုမိုမြန်ဆန်စွာပေးပို့နိုင်ရန် ဒီဇိုင်းထုတ်ထားသည်။ docker ဖြင့်၊ သင်သည် သင်၏အပလီကေးရှင်းကို သင်၏အခြေခံအဆောက်အအုံမှ ပိုင်းဖြတ်နိုင်ပြီး အခြေခံအဆောက်အအုံကို စီမံခန့်ခွဲသည့်အက်ပ်လီကေးရှင်းအဖြစ် ဆက်ဆံနိုင်သည်။ Docker သည် သင့်ကုဒ်ကို ပိုမိုမြန်ဆန်စွာ ပို့ဆောင်ပေးသည်၊ ပိုမိုမြန်ဆန်စွာ စမ်းသပ်ရန်၊ အပလီကေးရှင်းများကို ပိုမိုမြန်ဆန်စွာ ပို့ဆောင်ပေးကာ၊ ကုဒ်ရေးသားခြင်းနှင့် လုပ်ဆောင်နေသော ကုဒ်အကြား အချိန်ကို လျှော့ချပေးပါသည်။ Docker သည် သင့်အပလီကေးရှင်းများကို စီမံခန့်ခွဲရန်နှင့် လက်ခံဆောင်ရွက်ပေးရန် ကူညီပေးသည့် လုပ်ငန်းစဉ်များနှင့် အသုံးဝင်မှုများကို အသုံးပြုကာ ပေါ့ပါးသော container virtualization platform မှတဆင့် ၎င်းကို လုပ်ဆောင်ပါသည်။

၎င်း၏အဓိကတွင်၊ docker သည် သင့်အား ကွန်တိန်နာတစ်ခုအတွင်း လုံခြုံစွာ သီးခြားခွဲထားသည့် မည်သည့်အက်ပ်မဆိုနီးပါးကို လုပ်ဆောင်နိုင်စေပါသည်။ လုံခြုံသော သီးခြားခွဲထားခြင်းဖြင့် သင့်အား တူညီသောအိမ်ရှင်တွင် ကွန်တိန်နာများစွာကို တစ်ချိန်တည်းတွင် လုပ်ဆောင်နိုင်စေပါသည်။ hypervisor ၏နောက်ထပ်ဝန်ထုပ်ဝန်ပိုးမပါဘဲလည်ပတ်သည့်ကွန်တိန်နာ၏ပေါ့ပါးသောသဘောသဘာဝသည်သင့်အားသင်၏ hardware မှပိုမိုထုတ်ယူနိုင်စေသည်။

container virtualization platform နှင့် tools များသည် အောက်ပါကိစ္စများတွင် အသုံးဝင်နိုင်သည်-

  • သင်၏အပလီကေးရှင်း (နှင့် သင်အသုံးပြုသည့်အစိတ်အပိုင်းများ) ကို docker ကွန်တိန်နာများတွင် ထုပ်ပိုးခြင်း၊
  • ဖွံ့ဖြိုးတိုးတက်မှုနှင့် စမ်းသပ်ရန်အတွက် ဤကွန်တိန်နာများကို သင့်အဖွဲ့များသို့ ဖြန့်ဖြူးခြင်းနှင့် ပေးပို့ခြင်း၊
  • ဒေတာစင်တာများ နှင့် တိမ်တိုက်များတွင် နှစ်မျိုးလုံး သင့်ထုတ်လုပ်ရေးဆိုက်များပေါ်တွင် ဤကွန်တိန်နာများကို ခင်းကျင်းပါ။

Docker ကို ဘာအတွက် သုံးနိုင်မလဲ။

သင့်အပလီကေးရှင်းများကို အမြန်ထုတ်ဝေပါ။

Docker သည် ဖွံ့ဖြိုးတိုးတက်မှုစက်ဝန်းကို စုစည်းရန်အတွက် ကောင်းမွန်သည်။ Docker သည် developer များအား ဒေသဆိုင်ရာ ကွန်တိန်နာများကို အပလီကေးရှင်းများနှင့် ဝန်ဆောင်မှုများဖြင့် လုပ်ဆောင်နိုင်စေပါသည်။ ၎င်းသည် နောက်ပိုင်းတွင် သင့်အား စဉ်ဆက်မပြတ် ပေါင်းစည်းမှုနှင့် ဖြန့်ကျက်လုပ်ဆောင်မှုလုပ်ငန်းစဉ်များနှင့် ပေါင်းစပ်နိုင်စေပါသည်။

ဥပမာအားဖြင့်၊ သင်၏ developer များသည် စက်တွင်းကုဒ်ကို ရေးသားပြီး ၎င်းတို့၏ ဖွံ့ဖြိုးတိုးတက်မှုအစုစု (Docker ပုံများ) ကို လုပ်ဖော်ကိုင်ဖက်များနှင့် မျှဝေပါ။ အဆင်သင့်ဖြစ်သောအခါ၊ ကုဒ်နှင့် ကွန်တိန်နာများကို စမ်းသပ်ဆိုက်သို့ တွန်းပို့ပြီး လိုအပ်သည့် စမ်းသပ်မှုများကို လုပ်ဆောင်သည်။ စမ်းသပ်ဆိုက်မှ ကုဒ်နှင့် ပုံများကို ထုတ်လုပ်ရေးသို့ ပေးပို့နိုင်သည်။

ဖြန့်ကျက်ပြီး ဖြန့်ရတာ ပိုလွယ်တယ်။

docker container-based platform သည် သင်၏ payload ကို လွယ်ကူစွာ port လုပ်စေသည်။ Docker ကွန်တိန်နာများသည် ဒေတာစင်တာရှိ အစစ်အမှန် သို့မဟုတ် ဒေတာစင်တာရှိ သို့မဟုတ် cloud တွင် အစစ်အမှန် သို့မဟုတ် virtual machine ပေါ်တွင် လည်ပတ်နိုင်သည်။

Docker ၏ သယ်ဆောင်ရလွယ်ကူမှုနှင့် ပေါ့ပါးသောသဘောသဘာဝသည် သင့်လုပ်ငန်းတာဝန်ကို လှုပ်ရှားစီမံခန့်ခွဲရန် လွယ်ကူစေသည်။ သင့်အပလီကေးရှင်း သို့မဟုတ် ဝန်ဆောင်မှုများကို အသုံးပြုရန် သို့မဟုတ် ပိတ်ရန် docker ကို အသုံးပြုနိုင်သည်။ docker ၏အမြန်နှုန်းသည် ၎င်းကို အချိန်နှင့်တပြေးညီ လုပ်ဆောင်နိုင်စေပါသည်။

ပိုမြင့်သောဝန်နှင့် ဝန်ပိုများ

Docker သည် ပေါ့ပါးပြီး မြန်ဆန်သည်။ ၎င်းသည် hypervisor-based virtual machines များအတွက် ခံနိုင်ရည်ရှိပြီး ကုန်ကျစရိတ်သက်သာသော အခြားရွေးချယ်စရာကို ပေးပါသည်။ ဥပမာအားဖြင့်၊ သင်၏ကိုယ်ပိုင် cloud သို့မဟုတ် platform-as-service ကို ဖန်တီးသောအခါတွင် ၎င်းသည် မြင့်မားသောပတ်ဝန်းကျင်များတွင် အထူးအသုံးဝင်သည်။ သို့သော် သင့်တွင်ရှိသော အရင်းအမြစ်များမှ ပိုမိုရယူလိုသည့်အခါ အသေးစားနှင့် အလတ်စား အပလီကေးရှင်းများအတွက်လည်း အသုံးဝင်ပါသည်။

အဓိက Docker အစိတ်အပိုင်းများ

Docker တွင် အဓိက အစိတ်အပိုင်း နှစ်ခု ပါဝင်သည်။

  • Docker- ပွင့်လင်းအရင်းအမြစ် virtualization ပလပ်ဖောင်း၊
  • Docker Hub- Docker ကွန်တိန်နာများကို ဖြန့်ဖြူးခြင်းနှင့် စီမံခန့်ခွဲခြင်းအတွက် ကျွန်ုပ်တို့၏ platform-as-a-service။

မှတ်ချက်! Docker ကို Apache 2.0 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

Docker ဗိသုကာ

Docker သည် client-ဆာဗာဗိသုကာကိုအသုံးပြုသည်။ Docker ဖောက်သည်သည် သင့်ကွန်တိန်နာများကို ဖန်တီးခြင်း၊ လုပ်ဆောင်ခြင်းနှင့် ဖြန့်ဝေခြင်းဆိုင်ရာ ဝန်ထုပ်ဝန်ပိုးကို တာဝန်ယူပေးသည့် Docker daemon နှင့် ဆက်သွယ်သည်။ client နှင့် server နှစ်ခုလုံးသည် တူညီသော system တွင် run နိုင်ပြီး client ကို remote docker daemon နှင့် ချိတ်ဆက်နိုင်သည်။ client နှင့် server သည် socket သို့မဟုတ် RESTful API မှတဆင့် ဆက်သွယ်သည်။

Docker နားလည်ခြင်း။

Docker daemon

ပုံတွင်ပြထားသည့်အတိုင်း daemon သည် host machine ပေါ်တွင်အလုပ်လုပ်သည်။ အသုံးပြုသူသည် ဆာဗာနှင့် တိုက်ရိုက်မဆက်ဆံသော်လည်း ၎င်းအတွက် client ကို အသုံးပြုသည်။

Docker client

Docker client၊ docker ပရိုဂရမ်သည် Docker အတွက် ပင်မအင်တာဖေ့စ်ဖြစ်သည်။ ၎င်းသည် အသုံးပြုသူထံမှ ညွှန်ကြားချက်များကို လက်ခံရရှိပြီး docker daemon နှင့် အပြန်အလှန်တုံ့ပြန်သည်။

Docker အတွင်းပိုင်း

Docker တွင် ပါဝင်သော အစိတ်အပိုင်း သုံးခုကို သိရှိရန် လိုအပ်သည်-

  • ပုံများ
  • မှတ်ပုံတင်
  • ကွန်တိန်နာ

ပုံရိပ်

Docker ပုံသည် ဖတ်ရန်သာ နမူနာပုံစံတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်၊ ပုံတွင် Apache ပါရှိသော Ubuntu လည်ပတ်မှုစနစ်နှင့် ၎င်းတွင် အက်ပ်တစ်ခု ပါဝင်နိုင်သည်။ ပုံများကို ကွန်တိန်နာများ ဖန်တီးရန် အသုံးပြုသည်။ Docker သည် ပုံအသစ်များကို ဖန်တီးရန်၊ ရှိပြီးသားပုံများကို အပ်ဒိတ်လုပ်ရန် သို့မဟုတ် အခြားသူများ ဖန်တီးထားသော ပုံများကို ဒေါင်းလုဒ်လုပ်ရန် လွယ်ကူစေသည်။ ပုံများသည် docker build တစ်ခု၏ အစိတ်အပိုင်းများဖြစ်သည်။

registry ကို

Docker registry သည် ပုံများကို သိမ်းဆည်းသည်။ ပုံများကို ဒေါင်းလုဒ်လုပ်ရန် သို့မဟုတ် အပ်လုဒ်လုပ်နိုင်သည့် အများပိုင်နှင့် ပုဂ္ဂလိက မှတ်ပုံတင်များ ရှိပါသည်။ အများသူငှာ Docker မှတ်ပုံတင်ခြင်းဖြစ်ပါသည်။ Docker အချက်အချာ. အဲဒီမှာ သိမ်းဆည်းထားတဲ့ ပုံတွေ အများကြီးရှိတယ်။ သင်သိသည့်အတိုင်း ပုံများကို သင်ဖန်တီးနိုင်သည် သို့မဟုတ် အခြားသူများက ဖန်တီးထားသော ပုံများကို သင်အသုံးပြုနိုင်သည်။ မှတ်ပုံတင်ခြင်းများသည် ဖြန့်ဖြူးရေး အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။

контейнеры

ကွန်တိန်နာများသည် လမ်းညွှန်များနှင့် ဆင်တူသည်။ ကွန်တိန်နာများတွင် အပလီကေးရှင်းလည်ပတ်ရန် လိုအပ်သည့်အရာအားလုံး ပါဝင်ပါသည်။ ကွန်တိန်နာတစ်ခုစီကို ပုံတစ်ခုမှ ဖန်တီးထားသည်။ ကွန်တိန်နာများကို ဖန်တီးခြင်း၊ စတင်ခြင်း၊ ရပ်တန့်ခြင်း၊ ရွှေ့ပြောင်းခြင်း သို့မဟုတ် ဖျက်နိုင်သည်။ ကွန်တိန်နာတစ်ခုစီကို သီးခြားခွဲထားပြီး အပလီကေးရှင်းအတွက် လုံခြုံသောပလပ်ဖောင်းတစ်ခု ပံ့ပိုးပေးသည်။ ကွန်တိန်နာများသည် လုပ်ငန်း၏ အစိတ်အပိုင်းများဖြစ်သည်။

ဒါဆို Docker ဘယ်လိုအလုပ်လုပ်သလဲ။

ယခုအချိန်အထိ ကျွန်ုပ်တို့သိသည်မှာ-

  • ကျွန်ုပ်တို့၏ အပလီကေးရှင်းများတည်ရှိရာ ပုံများကို ဖန်တီးနိုင်သည်။
  • ကျွန်ုပ်တို့သည် အပလီကေးရှင်းများလည်ပတ်ရန်အတွက် ပုံများမှ ကွန်တိန်နာများကို ဖန်တီးနိုင်သည်။
  • Docker Hub သို့မဟုတ် အခြားရုပ်ပုံမှတ်ပုံတင်ခြင်းမှတဆင့် ပုံများကို ဖြန့်ဝေနိုင်ပါသည်။

ဒီအစိတ်အပိုင်းတွေက ဘယ်လိုလိုက်ဖက်လဲဆိုတာ ကြည့်ရအောင်။

ရုပ်ပုံဘယ်လိုအလုပ်လုပ်သလဲ။

ပုံတစ်ပုံသည် ကွန်တိန်နာတစ်ခု ဖန်တီးထားသည့် ဖတ်ရန်သာ နမူနာပုံစံတစ်ခုဖြစ်ကြောင်း ကျွန်ုပ်တို့ သိထားပြီးဖြစ်သည်။ ပုံတစ်ပုံချင်းစီတွင် အဆင့်များစွာ ပါဝင်ပါသည်။ Docker အသုံးပြုသည်။ သမဂ္ဂဖိုင်စနစ် ဤအဆင့်များကို ပုံတစ်ပုံတည်းအဖြစ် ပေါင်းစပ်ရန်။ ပြည်ထောင်စု ဖိုင်စနစ်သည် မတူညီသော ဖိုင်စနစ်များ (မတူညီသော အကိုင်းအခက်များ) မှ ဖိုင်များနှင့် လမ်းညွှန်များကို ပွင့်လင်းမြင်သာစွာ ထပ်နေစေပြီး ပေါင်းစပ်ထားသော ဖိုင်စနစ်တစ်ခု ဖန်တီးပေးသည်။

Docker သည် ပေါ့ပါးရသည့်အကြောင်းရင်းများထဲမှတစ်ခုမှာ ၎င်းသည် ဤကဲ့သို့သောအလွှာများကိုအသုံးပြုသောကြောင့်ဖြစ်သည်။ အက်ပလီကေးရှင်းကို အပ်ဒိတ်လုပ်ခြင်းကဲ့သို့သော ပုံကို ပြောင်းလဲသောအခါတွင် အလွှာအသစ်တစ်ခု ဖန်တီးသည်။ ထို့ကြောင့်၊ ပုံတစ်ခုလုံးကို အစားထိုးခြင်း သို့မဟုတ် ၎င်းကို ပြန်လည်တည်ဆောက်ခြင်းမပြုဘဲ၊ သင်သည် virtual machine တစ်ခုဖြင့် လုပ်ဆောင်ရနိုင်သကဲ့သို့၊ အလွှာကိုသာ ထည့်သွင်းခြင်း သို့မဟုတ် အပ်ဒိတ်လုပ်ထားသည်။ ပုံအသစ်တစ်ခုလုံးကို ဖြန့်ဝေရန်မလိုပါ၊ အပ်ဒိတ်ကိုသာ ဖြန့်ဝေခြင်းဖြင့် ပုံများကို ဖြန့်ဝေရန် ပိုမိုလွယ်ကူမြန်ဆန်စေသည်။

ရုပ်ပုံတိုင်း၏ နှလုံးသားတွင် အခြေခံပုံဖြစ်သည်။ ဥပမာအားဖြင့်၊ ubuntu၊ Ubuntu ၏ အခြေခံပုံ သို့မဟုတ် fedora၊ Fedora ဖြန့်ဖြူးမှု၏ အခြေခံပုံ။ ပုံအသစ်များကို ဖန်တီးရန်အတွက် ပုံများကို အခြေခံအဖြစ်လည်း အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်၊ သင့်တွင် apache ပုံတစ်ပုံရှိလျှင် ၎င်းကို သင့်ဝဘ်အက်ပ်လီကေးရှင်းအတွက် အခြေခံပုံအဖြစ် အသုံးပြုနိုင်သည်။

မှတ်ချက်! Docker သည် ပုံမှန်အားဖြင့် Docker Hub မှတ်ပုံတင်ခြင်းမှ ပုံများကို ဆွဲထုတ်သည်။

Docker ပုံများကို ဤအခြေခံပုံများမှ ဖန်တီးနိုင်သည်၊ ဤပုံများကို ဖန်တီးရန်အတွက် အဆင့်များကို ခေါ်ပါသည်။ ညွှန်ကြားချက်တစ်ခုစီသည် ပုံအသစ် သို့မဟုတ် အဆင့်တစ်ခုကို ဖန်တီးသည်။ ညွှန်ကြားချက်များသည် အောက်ပါအတိုင်းဖြစ်လိမ့်မည်-

  • command ကို run ပါ။
  • ဖိုင် သို့မဟုတ် လမ်းညွှန်ကို ထည့်ခြင်း။
  • ပတ်ဝန်းကျင်ပြောင်းလဲမှုတစ်ခုဖန်တီးခြင်း။
  • ဤပုံ၏ ကွန်တိန်နာကို စတင်သောအခါတွင် မည်သည့်အရာ လုပ်ဆောင်ရမည်ကို လမ်းညွှန်ချက်

ဤညွှန်ကြားချက်များကို ဖိုင်တစ်ခုတွင် သိမ်းဆည်းထားသည်။ Dockerfile. Docker က ဒါကိုဖတ်တယ်။ Dockerfileရုပ်ပုံကိုတည်ဆောက်သောအခါ၊ ဤညွှန်ကြားချက်များကိုလုပ်ဆောင်ပြီး နောက်ဆုံးပုံအား ပြန်ပို့ပေးသည်။

docker မှတ်ပုံတင်ခြင်းမည်သို့အလုပ်လုပ်သနည်း။

မှတ်ပုံတင်ခြင်းသည် docker ပုံများအတွက် သိုလှောင်မှုတစ်ခုဖြစ်သည်။ ပုံဖန်တီးပြီးသည်နှင့်၊ ၎င်းကို အများသူငှာ Docker Hub မှတ်ပုံတင်ခြင်း သို့မဟုတ် သင်၏ကိုယ်ရေးကိုယ်တာမှတ်ပုံတင်ခြင်းသို့ ထုတ်ဝေနိုင်သည်။

docker client ဖြင့်၊ သင်သည် ထုတ်ဝေပြီးသား ပုံများကို ရှာဖွေနိုင်ပြီး ကွန်တိန်နာများဖန်တီးရန်အတွက် ၎င်းတို့ကို သင်၏ docker စက်တွင် ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။

Docker Hub သည် အများသူငှာနှင့် ပုဂ္ဂလိက ရုပ်ပုံသိုလှောင်မှုများကို ပံ့ပိုးပေးသည်။ အများသူငှာ သိုလှောင်ရုံများမှ ပုံများကို ရှာဖွေခြင်းနှင့် ဒေါင်းလုဒ်လုပ်ခြင်းကို လူတိုင်းရနိုင်ပါသည်။ သီးသန့်သိုလှောင်မှု၏ အကြောင်းအရာများကို ရှာဖွေမှုရလဒ်များတွင် မပါဝင်ပါ။ သင်နှင့် သင့်အသုံးပြုသူများသာ ဤပုံများကို လက်ခံနိုင်ပြီး ၎င်းတို့ထံမှ ကွန်တိန်နာများကို ဖန်တီးနိုင်သည်။

ကွန်တိန်နာဘယ်လိုအလုပ်လုပ်သလဲ။

ကွန်တိန်နာတစ်ခုတွင် လည်ပတ်မှုစနစ်၊ အသုံးပြုသူဖိုင်များနှင့် မက်တာဒေတာများ ပါဝင်ပါသည်။ ကျွန်ုပ်တို့သိသည့်အတိုင်း ကွန်တိန်နာတစ်ခုစီကို ပုံတစ်ခုမှ ဖန်တီးထားသည်။ ဤပုံသည် docker သည် ကွန်တိန်နာတွင်ရှိသောအရာ၊ မည်သည့်လုပ်ငန်းစဉ်ကိုစတင်ရန်၊ ကွန်တိန်နာစတင်သည့်အခါနှင့် အခြားဖွဲ့စည်းပုံဒေတာများကို ပြောပြသည်။ Docker ပုံသည် ဖတ်ရန်သာဖြစ်သည်။ docker သည် ကွန်တိန်နာတစ်ခုကို စတင်သောအခါ၊ ၎င်းသည် အပလီကေးရှင်းကို run နိုင်သည့် (ယခင်ဖော်ပြထားသည့်အတိုင်း union ဖိုင်စနစ်အား အသုံးပြု၍) ပုံ၏အပေါ်ရှိ read/write layer ကို ဖန်တီးပေးပါသည်။

ကွန်တိန်နာစတင်သောအခါ ဘာဖြစ်သွားသနည်း။

သို့မဟုတ် ပရိုဂရမ်ကို အသုံးပြုပါ။ dockerသို့မဟုတ် RESTful API ကိုအသုံးပြု၍ docker client မှ docker daemon အား ကွန်တိန်နာကိုစတင်ရန်ပြောပါသည်။

$ sudo docker run -i -t ubuntu /bin/bash

ဒီ command ကိုကြည့်ရအောင်။ ကလိုင်းယင့်သည် command ကို အသုံးပြု၍ စတင်သည်။ dockerရွေးချယ်မှုနှင့်အတူ runကွန်တိန်နာအသစ်တစ်ခု လွှင့်တင်မည်ဟုဆိုသည်။ ကွန်တိန်နာတစ်ခုလည်ပတ်ရန် အနည်းဆုံးလိုအပ်ချက်များမှာ အောက်ပါအရည်အချင်းများဖြစ်သည်-

  • ကွန်တိန်နာဖန်တီးရန် မည်သည့်ပုံကို အသုံးပြုရမည်နည်း။ ငါတို့ကိစ္စ ubuntu
  • ကွန်တိန်နာကို စတင်သောအခါတွင် သင်လုပ်ဆောင်လိုသော command ကို။ ငါတို့ကိစ္စ /bin/bash

ဒီ command ကို run တဲ့အခါ hood အောက်မှာ ဘာဖြစ်သွားမလဲ။

Docker သည် အောက်ပါအတိုင်း လုပ်ဆောင်သည်။

  • ubuntu ပုံကို ဒေါင်းလုဒ်လုပ်သည်- Docker သည် ရုပ်ပုံရရှိနိုင်မှုကို စစ်ဆေးသည်။ ubuntu local machine မှာမရှိရင် ဒေါင်းလုဒ်လုပ်ပါ။ Docker အချက်အချာ. ပုံတစ်ခုရှိလျှင် ကွန်တိန်နာတစ်ခုဖန်တီးရန် ၎င်းကိုအသုံးပြုသည်။
  • ကွန်တိန်နာတစ်ခု ဖန်တီးသည်- ပုံအား လက်ခံရရှိသောအခါတွင် docker သည် ၎င်းကို container တစ်ခုဖန်တီးရန် အသုံးပြုသည်။
  • ဖိုင်စနစ်ကို အစပြုပြီး ဖတ်ရန်သာ အဆင့်ကို တပ်ဆင်သည်- ကွန်တိန်နာကို ဖိုင်စနစ်တွင် ဖန်တီးထားပြီး ရုပ်ပုံအား ဖတ်ရန်သီးသန့်အဆင့်သို့ ထည့်သွင်းထားသည်။
  • ကွန်ရက်/တံတားကို အစပြုသည်- docker သည် host machine နှင့် ဆက်သွယ်နိုင်စေမည့် network interface ကို ဖန်တီးပေးသည် ။
  • IP လိပ်စာကို သတ်မှတ်ခြင်း- လိပ်စာကို ရှာဖွေပြီး သတ်မှတ်ပေးသည်။
  • သတ်မှတ်ထားသော လုပ်ငန်းစဉ်ကို စတင်သည်- သင်၏လျှောက်လွှာကိုဖွင့်ပါ။
  • သင့်အပလီကေးရှင်းမှ အထွက်ကို စီမံဆောင်ရွက်ပေးသည်- သင့်အပလီကေးရှင်း၏ စံထည့်သွင်းမှု၊ အထွက်နှင့် အမှားအယွင်းများကို ချိတ်ဆက်ပြီး မှတ်တမ်းတင်ခြင်းဖြင့် သင့်အပလီကေးရှင်းစွမ်းဆောင်ရည်ကို ခြေရာခံနိုင်မည်ဖြစ်သည်။

ယခု သင့်တွင် အလုပ်လုပ်သည့် ကွန်တိန်နာတစ်ခု ရှိသည်။ သင့်ကွန်တိန်နာကို စီမံခန့်ခွဲနိုင်ပြီး သင့်အက်ပ်လီကေးရှင်းနှင့် အပြန်အလှန်ဆက်သွယ်နိုင်သည်။ အပလီကေးရှင်းကို ရပ်ရန် ဆုံးဖြတ်သောအခါ၊ ကွန်တိန်နာကို ဖျက်ပါ။

အသုံးပြုတဲ့နည်းပညာများ

Docker သည် Go ဖြင့်ရေးသားထားပြီး အထက်ဖော်ပြပါလုပ်ဆောင်ချက်များကိုအကောင်အထည်ဖော်ရန် Linux kernel အချို့ကိုအသုံးပြုသည်။

အမည်နေရာများ

Docker သည် နည်းပညာကို အသုံးပြုသည်။ namespaces ကွန်တိန်နာများဟုခေါ်သော သီးခြားအလုပ်နေရာများကို စုစည်းရန်။ ကျွန်ုပ်တို့သည် ကွန်တိန်နာတစ်ခုကို စတင်သောအခါ၊ docker သည် ထိုကွန်တိန်နာအတွက် namespaces အစုံကို ဖန်တီးသည်။

၎င်းသည် ကွန်တိန်နာ၏ ရှုထောင့်တစ်ခုစီကို ၎င်း၏ကိုယ်ပိုင်အမည်နေရာ၌ လုပ်ဆောင်နေပြီး ပြင်ပစနစ်သို့ဝင်ရောက်ခွင့်မရှိသဖြင့် သီးခြားအလွှာတစ်ခုကို ဖန်တီးပေးသည်။

docker အသုံးပြုသော namespace အချို့၏စာရင်း-

  • pid- လုပ်ငန်းစဉ်ကိုခွဲထုတ်ရန်;
  • အသားတင်: ကွန်ရက် အင်တာဖေ့စ်များကို စီမံခန့်ခွဲရန်၊
  • ipc- IPC အရင်းအမြစ်များကို စီမံခန့်ခွဲရန်။ (ICP: InterProccess Communication);
  • mnt- တောင်အချက်များကို စီမံခန့်ခွဲရန်၊
  • ကမ္ဘာတစ်လွှားကိုသြဒိနိတ်အချိန်: kernel ကို ခွဲထုတ်ရန်နှင့် ထိန်းချုပ်ဗားရှင်း မျိုးဆက် (UTC: Unix အကြိမ်ခွဲဝေခြင်းစနစ်)။

ထိန်းချုပ်ရေးအဖွဲ့များ

Docker သည်လည်း နည်းပညာကို အသုံးပြုသည်။ cgroups သို့မဟုတ် ထိန်းချုပ်ရေးအဖွဲ့များ။ အက်ပလီကေးရှင်းတစ်ခုအား သီးခြားလုပ်ဆောင်ခြင်း၏သော့ချက်မှာ အပလီကေးရှင်းအား သင်ပံ့ပိုးပေးလိုသောအရင်းအမြစ်များသာ ပေးဆောင်ရန်ဖြစ်သည်။ ဒါမှ ကွန်တိန်နာတွေဟာ အိမ်နီးချင်းကောင်းတွေ ဖြစ်လာမှာ သေချာပါတယ်။ ထိန်းချုပ်ရေးအဖွဲ့များက သင့်အား ရရှိနိုင်သော ဟာ့ဒ်ဝဲအရင်းအမြစ်များကို မျှဝေခွင့်ပြုပြီး လိုအပ်ပါက ကန့်သတ်ချက်များနှင့် ကန့်သတ်ချက်များကို သတ်မှတ်ပါ။ ဥပမာ၊ ကွန်တိန်နာအတွက် ဖြစ်နိုင်ချေရှိသော memory ပမာဏကို ကန့်သတ်ပါ။

ပြည်ထောင်စုဖိုင်စနစ်

Union File Sysem သို့မဟုတ် UnionFS သည် အလွန်ပေါ့ပါးပြီး မြန်ဆန်စေရန် အလွှာများဖန်တီးခြင်းဖြင့် အလုပ်လုပ်သော ဖိုင်စနစ်တစ်ခုဖြစ်သည်။ Docker သည် ကွန်တိန်နာတည်ဆောက်ထားသည့် ဘလောက်များကို ဖန်တီးရန် UnionFS ကို အသုံးပြုသည်။ Docker သည် AUFS၊ btrfs၊ vfs နှင့် DeviceMapper အပါအဝင် UnionFS ၏ မူကွဲများစွာကို အသုံးပြုနိုင်သည်။

ကွန်တိန်နာပုံစံများ

Docker သည် ဤအစိတ်အပိုင်းများကို container format ဟုခေါ်သော wrapper တစ်ခုအဖြစ် ပေါင်းစပ်ထားသည်။ မူရင်းပုံစံကို ခေါ်သည်။ libcontainer. Docker သည် Linux ပေါ်ရှိ ရိုးရာကွန်တိန်နာဖော်မတ်ကိုလည်း အသုံးပြုထားသည်။ LXC. အနာဂတ်တွင်၊ Docker သည် အခြားသော ကွန်တိန်နာဖော်မတ်များကို ပံ့ပိုးပေးနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ BSD Jails သို့မဟုတ် Solaris Zones နှင့် ပေါင်းစပ်ခြင်း။

source: www.habr.com

မှတ်ချက် Add