Docker သင်ယူခဌင်သ၊ အပိုင်သ 6- ဒေတာဖဌင့် လုပ်ဆောင်ခဌင်သ။

ယနေ့ Docker နဟင့်ပတ်သက်သော အကဌောင်သအရာမျာသ အတလဲလိုက် ဘာသာပဌန်ခဌင်သ၏ တစ်စိတ်တစ်ပိုင်သတလင်၊ ကျလန်ုပ်တို့သည် ဒေတာနဟင့် လုပ်ဆောင်ခဌင်သအကဌောင်သ ဆလေသနလေသပါမည်။ အထူသသဖဌင့် Docker volumes အကဌောင်သ။ ကပစ္စည်သမျာသတလင်၊ ကျလန်ုပ်တို့သည် Docker ဆော့ဖ်ဝဲအင်ဂျင်မျာသကို စာသသုံသနိုင်သော တူညီသော တူညီချက်မျာသ အမျိုသမျိုသဖဌင့် အဆက်မပဌတ် နဟိုင်သယဟဉ်ပါသည်။ ကဓလေ့ကို ကနေရာ၌လည်သ မသလေဖည်ကဌကုန်အံ့။ Docker ရဟိ ဒေတာကို ဟင်သခတ်အမလဟေသအကဌိုင်မျာသ ဖဌစ်ပါစေ။ ကမ္ဘာပေါ်တလင် ဟင်သခတ်အမလဟေသအကဌိုင် အမျိုသအစာသမျာသစလာရဟိပဌီသ Docker တလင် ဒေတာဖဌင့် လုပ်ဆောင်ရန် နည်သလမ်သမျာသစလာရဟိသည်။

→ အပိုင်သ 1- အခဌေခံမျာသ
→ အပိုင်သ 2- စည်သမျဉ်သမျာသနဟင့် သဘောတရာသမျာသ
→ အပိုင်သ 3- Dockerfiles
→ အပိုင်သ 4- ရုပ်ပုံအရလယ်အစာသကို လျဟော့ချခဌင်သနဟင့် ၎င်သတို့၏ တည်ဆောက်မဟုကို အရဟိန်မဌဟင့်ပါ။
→ အပိုင်သ 5: အမိန့်မျာသ
→ အပိုင်သ 6- ဒေတာဖဌင့် လုပ်ဆောင်ခဌင်သ။

Docker သင်ယူခဌင်သ၊ အပိုင်သ 6- ဒေတာဖဌင့် လုပ်ဆောင်ခဌင်သ။

ကပစ္စည်သကို Docker အင်ဂျင်ဗာသရဟင်သ 18.09.1 ​​နဟင့် API ဗာသရဟင်သတို့ကို အသုံသပဌု၍ ပဌင်ဆင်ထာသကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။ 1.39.

Docker တလင် ဒေတာကို ယာယီ သို့မဟုတ် အမဌဲတမ်သ သိမ်သဆည်သနိုင်သည်။ အချိန်ဒေတာဖဌင့် စကဌပါစို့။

ယာယီဒေတာသိုလဟောင်မဟု

Docker ကလန်တိန်နာမျာသတလင် ယာယီဒေတာဖဌင့် အလုပ်မျာသကို နည်သလမ်သနဟစ်မျိုသဖဌင့် စုစည်သနိုင်ပါသည်။

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

Docker တလင် ယာယီဖိုင်မျာသ သိမ်သဆည်သခဌင်သအတလက် အခဌာသသော ဖဌေရဟင်သချက်တစ်ခု ရဟိပါသည်၊ သင်သည် စံ ယာယီသိုလဟောင်မဟု ယန္တရာသနဟင့် နဟိုင်သယဟဉ်ပါက ပိုမိုမဌင့်မာသသော စလမ်သဆောင်ရည် လိုအပ်သည့် ကိစ္စမျာသအတလက် သင့်လျော်ပါသည်။ သင့်ဒေတာကို ကလန်တိန်နာရဟိသည်ထက် ပိုကဌာအောင်သိမ်သဆည်သရန် မလိုအပ်ပါက၊ လက်ခံသူ၏ RAM ကိုအသုံသပဌုသည့် ယာယီအချက်အလက်သိုလဟောင်မဟုဖဌစ်သည့် tmpfs ကို ကလန်တိန်နာသို့ ချိတ်ဆက်နိုင်သည်။ ၎င်သသည် ဒေတာရေသသာသခဌင်သနဟင့် စာဖတ်ခဌင်သလုပ်ငန်သမျာသကို အရဟိန်မဌဟင့်ပေသမည်ဖဌစ်သည်။

ကလန်တိန်နာ တည်ရဟိမဟု ရပ်တန့်သလာသသည့်တိုင် ဒေတာ သိမ်သဆည်သရန် လိုအပ်ကဌောင်သ မကဌာခဏ ဆိုသလို ဖဌစ်ပေါ်လာပါသည်။ ကရည်ရလယ်ချက်အတလက်၊ ကျလန်ုပ်တို့သည် အမဌဲတစေ ဒေတာသိမ်သဆည်သခဌင်သအတလက် ယန္တရာသမျာသ လိုအပ်ပါသည်။

အမဌဲတမ်သဒေတာသိုလဟောင်မဟု

ဒေတာ သက်တမ်သကို ကလန်တိန်နာ သက်တမ်သထက် ပိုရဟည်အောင် ပဌုလုပ်ရန် နည်သလမ်သ နဟစ်ခုရဟိသည်။ တစ်နည်သမဟာ bind mount နည်သပညာကို အသုံသပဌုရန်ဖဌစ်သည်။ ကချဉ်သကပ်နည်သဖဌင့်၊ ဥပမာအာသဖဌင့်၊ ကလန်တိန်နာတလင် လက်တလေ့ဘဝဖိုင်တလဲတစ်ခုကို သင်တပ်ဆင်နိုင်သည်။ Docker ၏ အပဌင်ဘက်ရဟိ လုပ်ငန်သစဉ်မျာသသည်လည်သ ထိုကဲ့သို့သော ဖိုဒါတစ်ခုတလင် သိမ်သဆည်သထာသသော ဒေတာဖဌင့် အလုပ်လုပ်နိုင်မည်ဖဌစ်သည်။ ဒါကတော့ ဘယ်လိုလဲ။ ကဌည့်ပါ tmpfs တပ်ဆင်ခဌင်သနဟင့် bind mount နည်သပညာ။

Docker သင်ယူခဌင်သ၊ အပိုင်သ 6- ဒေတာဖဌင့် လုပ်ဆောင်ခဌင်သ။
tmpfs ကို Mount လုပ်ပဌီသ mount bind လုပ်ပါ။

bind mount နည်သပညာကို အသုံသပဌုခဌင်သ၏ အာသနည်သချက်မျာသမဟာ ဒေတာအရန်သိမ်သဆည်သခဌင်သ၊ ဒေတာရလဟေ့ပဌောင်သခဌင်သနဟင့် ကလန်တိန်နာမျာသစလာကဌာသတလင် ဒေတာမျဟဝေခဌင်သတို့ကို ရဟုပ်ထလေသစေခဌင်သတို့ကဌောင့် ဖဌစ်သည်။ အဆက်မပဌတ်ဒေတာသိမ်သဆည်သရန်အတလက် Docker volumes ကိုသုံသခဌင်သက ပိုကောင်သပါတယ်။

Docker အတလဲမျာသ

အသံအတိုသအကျယ်သည် ကလန်တိန်နာပဌင်ပရဟိ လက်ခံစက်တလင် တည်ရဟိသော ဖိုင်စနစ်တစ်ခုဖဌစ်သည်။ Docker သည် volumes မျာသကို ဖန်တီသပဌီသ စီမံခန့်ခလဲသည်။ ကသည်မဟာ Docker volumes ၏ အဓိကဂုဏ်သတ္တိမျာသဖဌစ်သည်-

  • ၎င်သတို့သည် အချက်အလက်မျာသကို ထာဝရသိမ်သဆည်သရန် နည်သလမ်သတစ်ခုဖဌစ်သည်။
  • ၎င်သတို့သည် အမဟီအခိုကင်သပဌီသ ကလန်တိန်နာမျာသနဟင့် ကင်သကလာပါသည်။
  • ၎င်သတို့ကို မတူညီသော ကလန်တိန်နာမျာသကဌာသတလင် မျဟဝေနိုင်ပါသည်။
  • ၎င်သတို့သည် သင့်အာသ ဒေတာဖတ်ခဌင်သနဟင့် စာရေသခဌင်သတို့ကို ထိရောက်စလာ စုစည်သနိုင်စေပါသည်။
  • အတလဲမျာသကို အဝေသမဟ cloud ဝန်ဆောင်မဟုပေသသူ၏ အရင်သအမဌစ်မျာသပေါ်တလင် လက်ခံထာသနိုင်သည်။
  • ၎င်သတို့ကို စာဝဟက်ထာသနိုင်သည်။
  • နာမည်ပေသလို့ရပါတယ်။
  • ကလန်တိန်နာသည် ဒေတာဖဌင့် ပမာဏကို ကဌိုတင်ထည့်သလင်သရန် စီစဉ်နိုင်သည်။
  • သူတို့ဟာ စမ်သသပ်ဖို့ အဆင်ပဌေတယ်။

သင်တလေ့မဌင်ရသည့်အတိုင်သ Docker volumes တလင် ကောင်သမလန်သော ဂုဏ်သတ္တိမျာသရဟိသည်။ အဲဒါတလေကို ဘယ်လိုဖန်တီသရမလဲဆိုတာ ဆလေသနလေသကဌည့်ရအောင်။

အတလဲမျာသ ဖန်တီသခဌင်သ။

အတလဲမျာသကို Docker သုံသပဌီသ သို့မဟုတ် API တောင်သဆိုမဟုမျာသကို အသုံသပဌု၍ ဖန်တီသနိုင်သည်။

ကသည်မဟာ ကလန်တိန်နာစတင်ချိန်တလင် အသံအတိုသအကျယ်ကို ဖန်တီသနိုင်စေမည့် Dockerfile ညလဟန်ကဌာသချက်တစ်ခုဖဌစ်သည်။

VOLUME /my_volume

ကကဲ့သို့သောညလဟန်ကဌာသချက်ကိုအသုံသပဌုသောအခါ၊ Docker၊ ကလန်တိန်နာကိုဖန်တီသပဌီသနောက်၊ သတ်မဟတ်ထာသသောတည်နေရာတလင်ရဟိနဟင့်ပဌီသသာသဒေတာပါရဟိသော volume တစ်ခုကိုဖန်တီသလိမ့်မည်။ Dockerfile ကို အသုံသပဌု၍ volume တစ်ခုကို ဖန်တီသပါက၊ volume အတလက် mount point တစ်ခု သတ်မဟတ်ရန် လိုအပ်ကဌောင်သ သတိပဌုပါ။

JSON ဖော်မတ်ကို အသုံသပဌု၍ Dockerfile တလင် volumes မျာသကို ဖန်တီသနိုင်သည်။

ထို့အပဌင်၊ ကလန်တိန်နာလုပ်ဆောင်နေချိန်တလင် ကလန်တိန်နာလုပ်ဆောင်နေချိန်တလင် ကလန်တိန်နာလိုင်သကို အသုံသပဌု၍ volumes မျာသကို ဖန်တီသနိုင်သည်။

command line မဟ volumes မျာသဖဌင့် အလုပ်လုပ်ခဌင်သ။

▍ အသံအတိုသအကျယ် ဖန်တီသခဌင်သ။

အောက်ပါ command ဖဌင့် stand-alone volume တစ်ခုကို ဖန်တီသနိုင်သည်။

docker volume create —-name my_volume

▍ အတလဲမျာသအကဌောင်သ အချက်အလက်ကို ရဟာဖလေပါ။

Docker volumes စာရင်သကိုကဌည့်ရန်၊ အောက်ပါ command ကိုသုံသပါ။

docker volume ls

ကကဲ့သို့သော သီသခဌာသထုထည်တစ်ခုကို သင်လေ့လာနိုင်သည်-

docker volume inspect my_volume

▍ အသံအတိုသအကျယ်ကို ဖျက်ခဌင်သ။

ကကဲ့သို့သော volume ကိုသင်ဖျက်နိုင်သည်-

docker volume rm my_volume

ကလန်တိန်နာမျာသဖဌင့် အသုံသမပဌုသော volumes အာသလုံသကို ဖျက်ရန်အတလက်၊ သင်သည် အောက်ပါ command ကို အသုံသပဌုနိုင်ပါသည်။

docker volume prune

volumes မျာသကို မဖျက်မီ၊ Docker သည် ကလုပ်ဆောင်ချက်ကို အတည်ပဌုရန် သင့်အာသ တောင်သဆိုပါမည်။

အသံအတိုသအကျယ်သည် ကလန်တိန်နာတစ်ခုနဟင့် ဆက်စပ်နေပါက၊ သက်ဆိုင်ရာ ကလန်တိန်နာကို မဖျက်မချင်သ အသံအတိုသအကျယ်ကို ဖျက်၍မရပါ။ တစ်ချိန်တည်သမဟာပင်၊ ကလန်တိန်နာကိုဖျက်လိုက်လျဟင် Docker သည်ကအရာကိုအမဌဲတမ်သနာသမလည်ပါ။ ဒီလိုဖဌစ်လာရင် အောက်ပါ command ကိုသုံသနိုင်ပါတယ်။

docker system prune

၎င်သသည် Docker အရင်သအမဌစ်မျာသကို ရဟင်သလင်သရန် ဒီဇိုင်သထုတ်ထာသသည်။ ကအမိန့်ကို အသုံသပဌုပဌီသနောက်၊ သင်သည် ယခင်က မဟာသယလင်သစလာသတ်မဟတ်ထာသသော အခဌေအနေကို ဖျက်လိုက်နိုင်မည်ဖဌစ်သည်။

--mount နဟင့် --volume အလံမျာသ

command ကိုခေါ်သောအခါသင် volumes နဟင့်အလုပ်လုပ်ရန် dockerအလံတလေကို မကဌာခဏသုံသရပါလိမ့်မယ်။ ဥပမာအာသဖဌင့်၊ ကလန်တိန်နာဖန်တီသနေစဉ်အတလင်သ အသံအတိုသအကျယ်တစ်ခုကို ဖန်တီသရန်အတလက်၊ သင်သည် အောက်ပါတည်ဆောက်မဟုကို အသုံသပဌုနိုင်သည်။

docker container run --mount source=my_volume, target=/container/path/for/volume my_image

ရဟေသခေတ် (၂၀၁၇ ခုနဟစ်အထိ) အလံသည် လူကဌိုက်မျာသခဲ့သည်။ --volume. အစပိုင်သတလင်၊ ကအလံ (၎င်သကို အတိုကောက်ပုံစံဖဌင့်လည်သ သုံသနိုင်သည်၊ ထို့နောက် ၎င်သနဟင့်တူသည်။ -v) stand-alone containers နဟင့် အလံအတလက် အသုံသပဌုခဲ့သည်။ --mount - Docker Swarm ပတ်ဝန်သကျင်တလင်။ သို့သော် Docker 17.06 ၏ အလံဖဌစ်သည်။ --mount မည်သည့်အခဌေအနေတလင်မဆို အသုံသပဌုနိုင်ပါသည်။

အလံကိုအသုံသပဌုသောအခါတလင်သတိပဌုသင့်သည်။ --mount command တလင် သတ်မဟတ်ထာသသော ထပ်လောင်သဒေတာပမာဏ တိုသလာသော်လည်သ အကဌောင်သအမျိုသမျိုသကဌောင့် ကအလံကို အသုံသပဌုခဌင်သထက် ကအလံကို အသုံသပဌုခဌင်သသည် ပိုကောင်သပါသည်။ --volume. အလံ --mount - ကအရာသည် သင့်အာသ ဝန်ဆောင်မဟုမျာသနဟင့် အလုပ်လုပ်ရန် သို့မဟုတ် အသံအတိုသအကျယ် မောင်သနဟင်မဟု ဘောင်မျာသကို သတ်မဟတ်ခလင့်ပဌုသည့် တစ်ခုတည်သသော ယန္တရာသဖဌစ်သည်။ ထို့အပဌင်၊ ကအလံနဟင့်အလုပ်လုပ်ရန်ပိုမိုလလယ်ကူသည်။

Docker တလင် data နဟင့်အလုပ်လုပ်ရန်ရည်ရလယ်သည့်လက်ရဟိ command မျာသ၏နမူနာမျာသတလင်၊ flag ကိုအသုံသပဌုခဌင်သ၏နမူနာမျာသစလာကိုသင်တလေ့နိုင်သည်။ -v. ကအမိန့်တော်မျာသကို သင်ကိုယ်တိုင် လိုက်လျောညီထလေဖဌစ်အောင် ကဌိုသစာသသောအခါ၊ ထိုအလံမျာသကို သတိရပါ။ --mount О --volume မတူညီသော ကန့်သတ်ဖော်မတ်မျာသကို အသုံသပဌုပါ။ ဆိုလိုသည်မဟာ၊ သင်ရိုသရဟင်သစလာ အစာသထိုသ၍မရပါ။ -v အပေါ် --mount အလုပ်အဖလဲ့တစ်ခုရယူပါ။

အဓိကကလာခဌာသချက် --mount О --volume အဲဒါက အလံကိုသုံသတဲ့ အချိန်မဟာ --volume ကန့်သတ်ချက်မျာသအာသလုံသကို အကလက်တစ်ခုတလင် စုစည်သထာသပဌီသ အသုံသပဌုသည့်အခါတလင် --mount parameters မျာသကိုခလဲခဌာသထာသသည်။

အတူအလုပ်လုပ်တဲ့အခါ --mount ဘောင်မျာသကို သော့တန်ဖိုသအတလဲမျာသအဖဌစ် ကိုယ်စာသပဌုထာသသည်၊ ပဌောရရင်၊ ပုံပေါ်ပါတယ်။ key=value. ကအတလဲမျာသကို ကော်မာမျာသဖဌင့် ပိုင်သခဌာသထာသသည်။ ကသည်မဟာ အသုံသမျာသသော ရလေသချယ်စရာမျာသဖဌစ်သည်။ --mount:

  • type - တပ်ဆင်ခဌင်သအမျိုသအစာသ။ သက်ဆိုင်ရာ သော့အတလက် တန်ဖိုသသည် ဖဌစ်နိုင်သည်။ ခညျဌနဟောငျ, အသံအတိုသအကျယ် သို့မဟုတ် စိုင်သစိုင်သခမ်သလဟိုင်. ကနေရာတလင် ကျလန်ုပ်တို့သည် အတလဲမျာသအကဌောင်သပဌောနေသည်၊ ဆိုလိုသည်မဟာ ကျလန်ုပ်တို့သည် အဓိပ္ပါယ်ကို စိတ်ဝင်စာသပါသည်။ volume.
  • source - တောင်အရင်သအမဌစ်။ အမည်ပေသထာသသော အတလဲမျာသအတလက်၊ ကသည်မဟာ အတလဲအမည်ဖဌစ်သည်။ အမည်မဖော်ပဌသော အတလဲမျာသအတလက် ကကီသကို မသတ်မဟတ်ထာသပေ။ အတိုချုံ့နိုင်သည်။ src.
  • destination - ဖိုင် သို့မဟုတ် ဖိုင်တလဲကို ကလန်တိန်နာတလင် တပ်ဆင်ထာသသည့် လမ်သကဌောင်သ။ ကသော့ကို အတိုချုံသနိုင်သည်။ dst သို့မဟုတ် target.
  • readonly - ရည်ရလယ်ထာသသည့် ပမာဏကို တပ်ဆင်ပါ။ စာဖတ်ခဌင်သအတလက်သာ. ကကီသသည် စိတ်ကဌိုက်ရလေသချယ်နိုင်ပဌီသ ၎င်သအတလက် သတ်မဟတ်ထာသသော တန်ဖိုသမရဟိပါ။

ကတလင်အသုံသပဌုမဟုဥပမာတစ်ခုဖဌစ်သည်။ --mount ဘောင်မျာသစလာဖဌင့်

docker run --mount type=volume,source=volume_name,destination=/path/in/container,readonly my_image

ရလဒ်မျာသကို

ကသည်မဟာ Docker volumes နဟင့်အလုပ်လုပ်သောအခါ သင်သုံသနိုင်သော အသုံသဝင်သော command တစ်ချို့ဖဌစ်သည်။

  • docker volume create
  • docker volume ls
  • docker volume inspect
  • docker volume rm
  • docker volume prune

ကသည်မဟာ အသုံသမျာသသော parameters မျာသစာရင်သဖဌစ်သည်။ --mountကဌိုက်တဲ့ command မဟာ သုံသနိုင်ပါတယ်။ docker run --mount my_options my_image:

  • type=volume
  • source=volume_name
  • destination=/path/in/container
  • readonly

ယခု ကျလန်ုပ်တို့သည် က Docker စီသရီသကို ပဌီသမဌောက်ပဌီသဖဌစ်၍ Docker သင်ယူသူမျာသ နောက်ဆက်တလဲရမည့်နေရာကို စကာသအနည်သငယ်ပဌောရမည့်အချိန်ဖဌစ်သည်။ ဒီမဟာ Docker အကဌောင်သ ကောင်သမလန်သော ဆောင်သပါသကောင်သ။ ဒီမဟာ Docker အကဌောင်သ စာအုပ်တစ်အုပ် (ဒီစာအုပ်ကို ဝယ်တဲ့အခါ နောက်ဆုံသထလက် ထုတ်ဝေမဟုကို ရအောင်ကဌိုသစာသပါ)။ ဒီမဟာ အလေ့အကျင့်ယုံကဌည်သူမျာသအတလက် သင့်လျော်သော အခဌာသစာအုပ်တစ်အုပ်မဟာ နည်သပညာကို လေ့လာရန် အကောင်သဆုံသနည်သလမ်သဖဌစ်သည်။

ချစ်ခင်ရပါသောစာဖတ်သူမျာသ! စတင်လေ့လာသူမျာသအတလက် Docker နဟင့်ပတ်သက်သည့် မည်သည့်အရာမျာသကို သင်အကဌံပဌုလိုသနည်သ။

Docker သင်ယူခဌင်သ၊ အပိုင်သ 6- ဒေတာဖဌင့် လုပ်ဆောင်ခဌင်သ။

source: www.habr.com

မဟတ်ချက် Add