Docker Compose là một công cụ giúp bạn quản lý và chạy nhiều container Docker cùng lúc bằng cách định nghĩa chúng trong một file cấu hình duy nhất (docker-compose.yml).
✅ Giải thích ngắn gọn:
Docker Compose cho phép bạn mô tả toàn bộ hệ thống ứng dụng đa container (ví dụ: web + database + redis…) chỉ trong một file YAML, và chạy tất cả bằng một lệnh duy nhất.
📦 Khi nào cần dùng Docker Compose?
Khi ứng dụng của bạn gồm nhiều thành phần, ví dụ:
-
frontend(React, Vue…) -
backend(Node.js, PHP, Python…) -
database(MySQL, MongoDB…) -
redis,nginx, v.v.
Thay vì chạy thủ công từng docker run, bạn chỉ cần:
docker-compose up
→ Tất cả container sẽ được tạo và kết nối mạng tự động.
🧱 File docker-compose.yml mẫu:
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
Giải thích:
-
services: danh sách các container (dịch vụ). -
web: build từ thư mục hiện tại. -
db: dùng image sẵn có từ Docker Hub (PostgreSQL). -
depends_on: đảm bảodbkhởi động trướcweb.
⚙️ Lệnh thường dùng với Docker Compose:
| Lệnh | Mô tả |
|---|---|
docker-compose up |
Tạo và chạy tất cả dịch vụ. |
docker-compose down |
Dừng và xóa toàn bộ container, mạng, volume. |
docker-compose build |
Build lại image từ Dockerfile. |
docker-compose logs |
Xem log của tất cả dịch vụ. |
docker-compose exec |
Chạy lệnh trong container. |
🎯 Lợi ích:
-
Dễ quản lý hệ thống phức tạp.
-
Đơn giản hóa quá trình phát triển, test, triển khai.
-
Cấu hình một lần, chạy mọi nơi.
-
Tự động kết nối mạng giữa các container.
