Thuta Learning
ရှာဖွေရန်
ExercisesDevOps & Toolsintermediate

Docker Practice: Image & Container

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

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Docker Practice: Image & Container ကို ကိုယ်တိုင် လေ့ကျင့်ကြည့်မယ်
  • သင်ခဲ့ပြီးသား skill တွေကို practice လုပ်ပြီး ခိုင်မာအောင်လုပ်မယ်
  • အမှားရှာ၊ ပြင်တတ်၊ ကိုယ်တိုင် check လုပ်တတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

ဒီ lesson မှာ teaching အသစ်မရှိပါဘူး၊ အရင် lesson တွေမှာ လေ့လာခဲ့တဲ့ docker run, docker ps, docker exec, Dockerfile build concept တွေကို သင့်ဘာသာ command line ပေါ်မှာ run ကြည့်ပြီး memory ထဲ တွေ့ချက်ချ မြဲအောင် လုပ်ဖို့ ရည်ရွယ်ပါတယ်။ Image ကို pull လုပ်တာကနေ container run လုပ်တာအထိ၊ ပြီးရင် container ထဲကို ဝင်ပြီး command run ကြည့်တာအထိ hands-on အဆင့်ဆင့် practice လုပ်ရပါမယ်။ ဒီလို လက်တွေ့ run ကြည့်တဲ့အခါ image နဲ့ container ဘယ်လိုကွာလဲဆိုတာကို ပိုကောင်းကောင်း သဘောပေါက်လာပါလိမ့်မယ်။ Dockerfile ကိုယ်တိုင်ရေးပြီး build ကြည့်တာကလည်း docker build workflow တစ်ခုလုံးကို ပြန်ပြန်လက်တွေ့ လုပ်ကြည့်ခွင့်ရစေပါတယ်။

လေ့ကျင့်ခန်းများ

Task 1 - nginx image ကို docker pull nginx နဲ့ ဆွဲပြီး docker run -d -p 8080:80 --name my-nginx nginx နဲ့ background မှာ run ပါ။ Task 2 - docker ps command run ကြည့်ပြီး running container ရဲ့ NAME, PORTS column ကို note လုပ်ပါ၊ docker ps -a နဲ့ stopped container များပါ ကြည့်ပါ။ Task 3 - docker exec -it my-nginx bash နဲ့ container ထဲဝင်ပြီး echo hello > test.txt နဲ့ file တစ်ခု create လုပ်ပါ၊ ပြီးရင် exit ထွက်ပါ။ Task 4 - simple Python script တစ်ခုအတွက် Dockerfile ကိုယ်တိုင်ရေးပြီး docker build -t my-app . နဲ့ image build လုပ်ကြည့်ပါ။

Code နမူနာ

bash
# Task 1: pull + run
docker pull nginx
docker run -d -p 8080:80 --name my-nginx nginx

# Task 2: list containers
docker ps
docker ps -a

# Task 3: exec into container
docker exec -it my-nginx bash
# container ထဲမှာ:
#   echo hello > test.txt
#   cat test.txt
#   exit

# Task 4: own Dockerfile
# Dockerfile
# FROM python:3.11-slim
# WORKDIR /app
# COPY app.py .
# CMD ["python", "app.py"]

docker build -t my-app .
docker run my-app
You should see
Command လေးခုစလုံးကို error မတက်ဘဲ run ပြီးရင် container running state ရောက်နေမယ်၊ exec ထဲက file ကိုလည်း cat နဲ့ ဖတ်ရရမယ်၊ ကိုယ်ပိုင် image ကလည်း build success ဖြစ်ပြီး run လို့ရရမယ်။

၅ မိနစ် စမ်းကြည့်

5 minutes အတွင်း nginx container ကို run လုပ်ပြီး browser ကနေ localhost:8080 ကို ဝင်ကြည့်ပါ၊ default nginx welcome page ပေါ်လာရင် အောင်မြင်ပါပြီ။

သတိလေးတစ်ချက်

Practice ပြီးတိုင်း docker stop နဲ့ docker rm ကနေ container တွေကို ရှင်းပေးပါ၊ မဟုတ်ရင် container အများကြီး ကျန်နေပြီး name ထပ်တွေ့တဲ့ error တွေ ကြုံရနိုင်ပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • docker run မှာ -d flag မထည့်ဘဲ run လုပ်လိုက်လို့ terminal ကို container log က block ထားတာ
  • port 8080 ကို app တခြားတစ်ခုက သုံးနေပြီးသားမို့ docker run လုပ်တဲ့အခါ port already in use error တက်တာ

အခု ကိုယ်တိုင် စမ်းကြည့်

5 minutes အတွင်း nginx container ကို run လုပ်ပြီး browser ကနေ localhost:8080 ကို ဝင်ကြည့်ပါ၊ default nginx welcome page ပေါ်လာရင် အောင်မြင်ပါပြီ။

You'll know it worked when: Command လေးခုစလုံးကို error မတက်ဘဲ run ပြီးရင် container running state ရောက်နေမယ်၊ exec ထဲက file ကိုလည်း cat နဲ့ ဖတ်ရရမယ်၊ ကိုယ်ပိုင် image ကလည်း build success ဖြစ်ပြီး run လို့ရရမယ်။

Docker Practice: Image & Container | Thuta Learning