Docker အသုံးပြုနည်းလမ်းညွှန်: သင်၏အပလီကေးရှင်းကို ကွန်တိန်နာအဖြစ် အမြန်စတင်ပါ
# Docker အသုံးပြုနည်းလမ်းညွှန်: သင်၏အပလီကေးရှင်းကို ကွန်တိန်နာအဖြစ် အမြန်စတင်ပါ
Docker သည် ခေတ်မီဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးတိုးတက်မှုနှင့် အသုံးချမှုတွင် မရှိမဖြစ် အစိတ်အပိုင်းတစ်ခု ဖြစ်လာခဲ့သည်။ Kubernetes နှင့်ပတ်သက်သော ဆွေးနွေးမှုများ အများအပြားရှိသော်လည်း Docker သည် ကုမ္ပဏီများစွာအတွက် အပလီကေးရှင်းများကို တည်ဆောက်ခြင်း၊ စမ်းသပ်ခြင်းနှင့် အသုံးချခြင်းအတွက် ဦးစားပေးကိရိယာတစ်ခုအဖြစ် ဆက်လက်တည်ရှိနေပါသည်။ ဤဆောင်းပါးသည် Docker ကို အမြန်စတင်ရန်၊ ၎င်း၏ အဓိကအယူအဆများကို နားလည်ရန်နှင့် သင်၏အပလီကေးရှင်းကို ကွန်တိန်နာအဖြစ် စတင်အသုံးပြုနိုင်ရန်အတွက် လက်တွေ့ကျသော ဥပမာတစ်ခုကို ပေးပါလိမ့်မည်။
## Docker ၏ အဓိကအယူအဆများ
စတင်လေ့ကျင့်ခြင်းမပြုမီ Docker ၏ အဓိကအယူအဆအချို့ကို နားလည်ရန် အရေးကြီးသည်:
* **ပုံရိပ် (Image):** ပုံရိပ်သည် ဖတ်ရှုရန်သာဖြစ်ပြီး အပလီကေးရှင်းကို လုပ်ဆောင်ရန် လိုအပ်သမျှအားလုံးပါဝင်သော ပုံစံငယ်တစ်ခုဖြစ်သည်- ကုဒ်၊ လုပ်ဆောင်ချိန်ပတ်ဝန်းကျင်၊ စနစ်ကိရိယာများ၊ စာကြည့်တိုက်များနှင့် မှီခိုမှုများ။ ၎င်းသည် virtual machine ပုံရိပ်နှင့်ဆင်တူသော်လည်း ပိုမိုပေါ့ပါးသည်။
* **ကွန်တိန်နာ (Container):** ကွန်တိန်နာသည် ပုံရိပ်မှ ဖန်တီးထားသော လုပ်ဆောင်နေသည့် ဥပမာတစ်ခုဖြစ်သည်။ ၎င်းသည် ပုံရိပ်၏ လုပ်ဆောင်ချိန် ဥပမာတစ်ခုဖြစ်ပြီး အပလီကေးရှင်းနှင့် ၎င်း၏ မှီခိုမှုများအားလုံးပါဝင်သည်။ ကွန်တိန်နာများသည် တစ်ခုနှင့်တစ်ခု သီးခြားခွဲထားပြီး ၎င်းတို့၏ ကိုယ်ပိုင်ဖိုင်စနစ်၊ လုပ်ငန်းစဉ်များနှင့် ကွန်ရက်နေရာများရှိသည်။
* **Docker Hub:** Docker Hub သည် အများသုံးပုံရိပ်သိုလှောင်ရုံတစ်ခုဖြစ်ပြီး ကြိုတင်တည်ဆောက်ထားသော ပုံရိပ်များကို ဒေါင်းလုဒ်လုပ်နိုင်ပြီး သင်၏ကိုယ်ပိုင်ပုံရိပ်များကို အပ်လုဒ်လုပ်နိုင်သည်။ ၎င်းသည် GitHub နှင့်ဆင်တူသော်လည်း Docker ပုံရိပ်များအတွက် သီးသန့်ဖြစ်သည်။
* **Dockerfile:** Dockerfile သည် Docker ပုံရိပ်ကို တည်ဆောက်ရန် ညွှန်ကြားချက်များအားလုံးပါဝင်သော စာသားဖိုင်တစ်ခုဖြစ်သည်။ Dockerfile ကို ရေးခြင်းဖြင့် ပုံရိပ်ဖန်တီးခြင်းလုပ်ငန်းစဉ်ကို အလိုအလျောက်လုပ်ဆောင်နိုင်သည်။
* **Docker Compose:** Docker Compose သည် ကွန်တိန်နာအများအပြားပါဝင်သော Docker အပလီကေးရှင်းကို သတ်မှတ်ရန်နှင့် လုပ်ဆောင်ရန်အတွက် ကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် YAML ဖိုင်ကို အသုံးပြု၍ အပလီကေးရှင်း၏ ဝန်ဆောင်မှုများကို စီစဉ်သတ်မှတ်နိုင်ပြီး ဝန်ဆောင်မှုအားလုံးကို စတင်ရန် သို့မဟုတ် ရပ်တန့်ရန်အတွက် တစ်ခုတည်းသော command ကို အသုံးပြုနိုင်သည်။
## Docker တပ်ဆင်ခြင်း
ပထမဦးစွာ Docker ကို တပ်ဆင်ရန်လိုအပ်သည်။ Docker သည် လည်ပတ်မှုစနစ်အမျိုးမျိုးအတွက် တပ်ဆင်မှုပက်ကေ့ခ်ျများကို ပံ့ပိုးပေးသည်။ [Docker ၏တရားဝင်ဝက်ဘ်ဆိုက်](https://www.docker.com/get-started/) သို့ ဝင်ရောက်ပြီး သက်ဆိုင်ရာ ညွှန်ကြားချက်များကို လိုက်နာ၍ တပ်ဆင်ပါ။
တပ်ဆင်ပြီးပါက `docker --version` command ကို run ခြင်းဖြင့် Docker ကို မှန်ကန်စွာ တပ်ဆင်ထားခြင်းရှိမရှိ စစ်ဆေးနိုင်သည်။
## ရိုးရှင်းသော Python အပလီကေးရှင်းကို ကွန်တိန်နာအဖြစ် ပြောင်းလဲခြင်း
ရိုးရှင်းသော Python အပလီကေးရှင်းကို ဖန်တီးပြီး Docker ကို အသုံးပြု၍ ကွန်တိန်နာအဖြစ် ပြောင်းလဲပါမည်။
### 1. Python အပလီကေးရှင်းကို ဖန်တီးခြင်း
`app.py` အမည်ရှိ ဖိုင်တစ်ခုကို ဖန်တီးပြီး အောက်ပါကုဒ်ကို ထည့်ပါ:
```python
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, Docker!"
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
ဤရိုးရှင်းသော Flask အပလီကေးရှင်းသည် root path / တွင် "Hello, Docker!" ကို ပြန်ပေးပါမည်။
2. requirements.txt ဖိုင်ကို ဖန်တီးခြင်း
အပလီကေးရှင်းသည် Flask library ကို မှီခိုနေသောကြောင့် ဤမှီခိုမှုများကို ကြေငြာရန် requirements.txt ဖိုင်ကို ဖန်တီးရန်လိုအပ်သည်။
Flask
3. Dockerfile ကို ဖန်တီးခြင်း
Dockerfile အမည်ရှိ ဖိုင်တစ်ခုကို ဖန်တီးပြီး အောက်ပါအကြောင်းအရာများကို ထည့်ပါ:
# တရားဝင် Python ပုံရိပ်ကို အခြေခံပုံရိပ်အဖြစ် အသုံးပြုပါ
FROM python:3.9-slim-buster
# လုပ်ငန်းခွင်လမ်းညွှန်ကို သတ်မှတ်ပါ
WORKDIR /app
# requirements.txt ဖိုင်ကို လုပ်ငန်းခွင်လမ်းညွှန်သို့ ကူးယူပါ
COPY requirements.txt .
# မှီခိုမှုများကို တပ်ဆင်ပါ
RUN pip install --no-cache-dir -r requirements.txt
```# အပလီကေးရှင်းကုဒ်ကို အလုပ်လုပ်သည့်လမ်းညွှန်ထဲသို့ ကူးထည့်ပါ
COPY app.py .
# Port 5000 ကို ထုတ်ဖော်ပါ
EXPOSE 5000
# စတင်အမိန့်ကို သတ်မှတ်ပါ
CMD ["python", "app.py"]
Dockerfile ရှင်းလင်းချက်:
FROM python:3.9-slim-buster: အခြေခံပုံရိပ်ကို Python 3.9 ၏ အကျဉ်းချုပ်ဗားရှင်းအဖြစ် သတ်မှတ်သည်။WORKDIR /app: ကွန်တိန်နာအတွင်းရှိ အလုပ်လုပ်သည့်လမ်းညွှန်ကို/appအဖြစ် သတ်မှတ်သည်။COPY requirements.txt .: လက်ရှိလမ်းညွှန်အောက်ရှိrequirements.txtဖိုင်ကို ကွန်တိန်နာ၏/appလမ်းညွှန်သို့ ကူးထည့်သည်။RUN pip install --no-cache-dir -r requirements.txt: ကွန်တိန်နာအတွင်းရှိpipအမိန့်ကို အသုံးပြု၍requirements.txtဖိုင်တွင် သတ်မှတ်ထားသော မှီခိုပစ္စည်းများကို ထည့်သွင်းသည်။--no-cache-dirပါရာမီတာသည် ပုံရိပ်အရွယ်အစားကို လျှော့ချနိုင်သည်။COPY app.py .: လက်ရှိလမ်းညွှန်အောက်ရှိapp.pyဖိုင်ကို ကွန်တိန်နာ၏/appလမ်းညွှန်သို့ ကူးထည့်သည်။EXPOSE 5000: ကွန်တိန်နာသည် port 5000 ကို နားထောင်မည်ဟု ကြေငြာသည်။CMD ["python", "app.py"]: ကွန်တိန်နာစတင်သောအခါ လုပ်ဆောင်ရမည့်အမိန့်ကို သတ်မှတ်သည်။
4. Docker ပုံရိပ်ကို တည်ဆောက်ခြင်း
Dockerfile ပါဝင်သည့် လမ်းညွှန်တွင်၊ Docker ပုံရိပ်ကို တည်ဆောက်ရန် အောက်ပါအမိန့်ကို လုပ်ဆောင်ပါ:
docker build -t my-python-app .
docker build: ပုံရိပ်ကို တည်ဆောက်သည့် အမိန့်။-t my-python-app: ပုံရိပ်အတွက် အမည်တစ်ခု (my-python-app) ကို သတ်မှတ်သည်။.: Dockerfile တည်ရှိသည့် လမ်းညွှန် (လက်ရှိလမ်းညွှန်) ကို သတ်မှတ်သည်။
တည်ဆောက်မှုလုပ်ငန်းစဉ်သည် အချိန်အနည်းငယ်ကြာနိုင်သည်၊ ၎င်းသည် ကွန်ရက်အမြန်နှုန်းနှင့် မှီခိုပစ္စည်းများ၏ အရွယ်အစားပေါ်တွင် မူတည်သည်။
5. Docker ကွန်တိန်နာကို လုပ်ဆောင်ခြင်း
Docker ကွန်တိန်နာကို လုပ်ဆောင်ရန် အောက်ပါအမိန့်ကို အသုံးပြုပါ:
docker run -d -p 5000:5000 my-python-app
docker run: ကွန်တိန်နာကို လုပ်ဆောင်သည့် အမိန့်။-d: ကွန်တိန်နာကို ခွဲထုတ်သည့်ပုံစံဖြင့် လုပ်ဆောင်သည် (နောက်ခံတွင် လုပ်ဆောင်သည်)။-p 5000:5000: လက်ခံကွန်ပျူတာ၏ port 5000 ကို ကွန်တိန်နာ၏ port 5000 သို့ မြေပုံဆွဲသည်။my-python-app: အသုံးပြုရမည့် ပုံရိပ်အမည်ကို သတ်မှတ်သည်။
6. အပလီကေးရှင်းကို အတည်ပြုခြင်း
ဘရောက်ဇာတွင် http://localhost:5000 သို့ ဝင်ရောက်ကြည့်ရှုပါ၊ သင်သည် "Hello, Docker!" ကို တွေ့ရပါမည်။
7. ကွန်တိန်နာကို ရပ်တန့်ပြီး ဖျက်ခြင်း
ကွန်တိန်နာကို ရပ်တန့်ရန် အောက်ပါအမိန့်ကို အသုံးပြုပါ:
docker stop
`` ကို docker ps အမိန့်ဖြင့် ကြည့်ရှုနိုင်သည်။
ကွန်တိန်နာကို ဖျက်ရန် အောက်ပါအမိန့်ကို အသုံးပြုပါ:
docker rm
Docker Compose စတင်ခြင်း
သင်၏အပလီကေးရှင်းသည် ဝန်ဆောင်မှုများစွာဖြင့် ဖွဲ့စည်းထားပါက၊ ၎င်းတို့ကို စီမံခန့်ခွဲရန် Docker Compose ကို အသုံးပြုနိုင်သည်။
1. docker-compose.yml ဖိုင်ကို ဖန်တီးခြင်း
docker-compose.yml အမည်ရှိ ဖိုင်တစ်ခုကို ဖန်တီးပြီး အောက်ပါအကြောင်းအရာကို ထည့်ပါ:
version: "3.9"
services:
web:
image: my-python-app
ports:
- "5000:5000"
docker-compose.yml ရှင်းလင်းချက်:* version: "3.9": Docker Compose ဖိုင်၏ ဗားရှင်းကို သတ်မှတ်သည်။
services: application ၏ ဝန်ဆောင်မှုများကို သတ်မှတ်သည်။web: "web" ဟုခေါ်သော ဝန်ဆောင်မှုကို သတ်မှတ်သည်။image: my-python-app: ဝန်ဆောင်မှုအသုံးပြုမည့် image ကို သတ်မှတ်သည်။ports: port mapping ကို သတ်မှတ်သည်။
2. Application ကို စတင်ခြင်း
docker-compose.yml ဖိုင်ပါဝင်သော directory ထဲတွင် အောက်ပါ command ကို run ပြီး application ကို စတင်ပါ:
docker-compose up -d
docker-compose up: application ကို စတင်ရန် command ဖြစ်သည်။-d: container ကို detached mode ဖြင့် run ပါ။
3. Application ကို ရပ်တန့်ခြင်း
အောက်ပါ command ကို အသုံးပြု၍ application ကို ရပ်တန့်ပါ:
docker-compose down
Docker လုံခြုံရေးအတွက် အကောင်းဆုံးအလေ့အကျင့်များ
ဆွေးနွေးမှုမှတွေ့မြင်ရသည့်အတိုင်း Docker image ၏ လုံခြုံရေးသည် အရေးကြီးသောပြဿနာဖြစ်သည်။ Docker လုံခြုံရေးအတွက် အောက်ပါအကောင်းဆုံးအလေ့အကျင့်အချို့ကို ဖော်ပြပေးလိုက်ပါတယ်:
- တရားဝင် image ကို အသုံးပြုပါ: တရားဝင်ပေးထားသော image များကို တတ်နိုင်သမျှအသုံးပြုပါ။ ၎င်း image များသည် လုံခြုံရေးစကင်ဖတ်စစ်ဆေးပြီး ထိန်းသိမ်းထားလေ့ရှိသည်။
- Image ရှိ အားနည်းချက်များကို စကင်ဖတ်ပါ: Trivy ကဲ့သို့သောကိရိယာများကို အသုံးပြု၍ image ရှိ သိထားပြီးသော အားနည်းချက်များကို စကင်ဖတ်ပြီး image ကို အချိန်မီ update လုပ်ပါ။
- အနည်းဆုံးအခွင့်အရေးမူဝါဒကို အသုံးပြုပါ: container ကို root user အနေဖြင့် run ခြင်းကို ရှောင်ကြဉ်ပါ။
- Container ၏ resource ကို ကန့်သတ်ပါ: cgroups ကို အသုံးပြု၍ container ၏ CPU နှင့် memory အသုံးပြုမှုကို ကန့်သတ်ပါ။
- Image ကို ပုံမှန် update လုပ်ပါ: လုံခြုံရေးအားနည်းချက်များကို ပြင်ဆင်ရန်အတွက် image ကို update လုပ်ထားပါ။
- လုံခြုံရေးစကင်ဖတ်ကိရိယာများကို အသုံးပြုပါ: Snyk, Clair စသည့်ကိရိယာများကို သင်၏ CI/CD လုပ်ငန်းစဉ်တွင် ပေါင်းစပ်ထည့်သွင်းနိုင်ပြီး image ရှိ အားနည်းချက်များကို အလိုအလျောက် စကင်ဖတ်နိုင်သည်။





