Docker Compose ဖြင့် Multi-Container Applications တည်ဆောက်ခြင်း
Docker Compose ဆိုတာ ဘာလဲ?
Section titled “Docker Compose ဆိုတာ ဘာလဲ?”Docker Compose ဆိုသည်မှာ Containers အများအပြား ပါဝင်သော Application တစ်ခုလုံးကို Configuration File (docker-compose.yml) တစ်ခုတည်း ဖြင့် တည်ဆောက်၊ မောင်းနှင်၊ ထိန်းချုပ်ပေးသော Tool ဖြစ်ပါတယ်။
graph TD A[docker-compose.yml] --> B[Web App Container - Node.js] A --> C[Database Container - PostgreSQL] A --> D[Cache Container - Redis] B <--> C B <--> D1. Real-world docker-compose.yml ဥပမာ (Web + Database + Redis)
Section titled “1. Real-world docker-compose.yml ဥပမာ (Web + Database + Redis)”version: '3.8'
services: # 1. Web Application Service web: build: . ports: - "3000:3000" environment: - NODE_ENV=production - DATABASE_URL=postgres://postgres:secretpassword@db:5432/mydb - REDIS_URL=redis://cache:6379 depends_on: - db - cache
# 2. Database Service db: image: postgres:15-alpine restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: secretpassword POSTGRES_DB: mydb volumes: - pgdata:/var/lib/postgresql/data
# 3. Redis Cache Service cache: image: redis:alpine restart: always
# Volumes သီးသန့် Persist လုပ်ခြင်းvolumes: pgdata:2. Docker Compose CLI Commands
Section titled “2. Docker Compose CLI Commands”# Services အားလုံးကို Background တွင် စတင် ရန်းယူခြင်းdocker compose up -d
# Services အားလုံး၏ Logs ကြည့်ခြင်းdocker compose logs -f
# Services အားလုံး၏ အခြေအနေ ကြည့်ခြင်းdocker compose ps
# Services အားလုံးကို ရပ်တန့်၍ Containers များကို ဖျက်ပစ်ခြင်းdocker compose down
# Data Volumes ပါ အကုန် ရှင်းထုတ်ခြင်းdocker compose down -v3. Docker Networking & Environment Variables
Section titled “3. Docker Networking & Environment Variables”- Docker Internal Network: Compose ဖြင့် Run သော Containers များသည် သီးသန့် Internal Network တွင် ပါဝင်ပြီး Service Name ဖြင့် အချင်းချင်း Direct Domain ခေါ်ယူနိုင်သည် (ဥပမာ -
db:5432သို့မဟုတ်cache:6379)။ - Environment Variables File: Secrets များကို
.envFile ထဲတွင် သီးသန့် ခွဲထုတ်ထားပြီးdocker-compose.ymlမှ လှမ်းယူ သုံးစွဲနိုင်ပါတယ်။