Giới thiệu
Trong tập trước, chúng ta đã học cách sử dụng Docker Compose để định nghĩa và chạy các ứng dụng đa container. Bài viết này sẽ đưa bạn đến các tính năng nâng cao trong Docker Compose, giúp quản lý các ứng dụng phức tạp một cách dễ dàng hơn.
Mục lục
- Tăng quy mô dịch vụ
- Phụ thuộc dịch vụ
- Ghi đè cấu hình
- Kiểm tra sức khỏe
- Mẹo sử dụng Docker Compose nâng cao
- Thách thức thực hành
- Câu hỏi thường gặp
1. Tăng quy mô dịch vụ
Đôi khi, một phiên bản container không đủ. Docker Compose cho phép bạn dễ dàng tăng quy mô các dịch vụ.
yaml
version: '3'
services:
web:
image: myapp:latest
deploy:
replicas: 3
replicas: 3→ Chạy 3 bản sao của dịch vụweb.- Rất hữu ích cho cân bằng tải và xử lý lượng truy cập lớn.
Các bước thực hiện
- Tạo file
docker-compose.ymlvới nội dung trên. - Chạy lệnh sau:
bash
docker-compose up --scale web=3 -d
3. Kiểm tra số lượng container đang chạy với lệnh:
```bash
docker ps
2. Phụ thuộc dịch vụ
Bạn có thể định nghĩa các phụ thuộc giữa các dịch vụ để đảm bảo rằng các container khởi động theo thứ tự đúng.
Ví dụ trong file docker-compose.yml:
yaml
version: '3'
services:
db:
image: postgres:latest
app:
build: ./app
depends_on:
- db
depends_onđảm bảo rằng container cơ sở dữ liệu khởi động trước khi container ứng dụng khởi động.
⚠️ Lưu ý: Câu lệnh này không đảm bảo rằng DB đã sẵn sàng hoàn toàn. Để làm điều đó, bạn cần sử dụng healthchecks.
3. Ghi đè cấu hình
Docker Compose cho phép bạn sử dụng nhiều file cấu hình cho các môi trường khác nhau.
Cấu hình mặc định:
bash
docker-compose -f docker-compose.yml up
Ghi đè với dev/test/prod:
bash
docker-compose -f docker-compose.yml -f docker-compose.override.yml up
- Điều này giúp bạn chuyển đổi cấu hình mà không thay đổi file gốc.
4. Kiểm tra sức khỏe
Đảm bảo rằng các container hoạt động bình thường trước khi các container khác phụ thuộc vào chúng.
yaml
version: '3'
services:
db:
image: postgres:latest
healthcheck:
test: ["CMD", "pg_isready", "-U", "postgres"]
interval: 10s
retries: 5
Điều này đảm bảo cơ sở dữ liệu đã sẵn sàng trước khi các container khác cố gắng kết nối.
5. Mẹo sử dụng Docker Compose nâng cao
- Sử dụng file
.envđể quản lý biến môi trường. - Tách biệt file Compose cho dev và prod.
- Kết hợp tăng quy mô với proxy ngược (như Nginx/Traefik) để cân bằng tải.
6. Thách thức thực hành
- Tạo file
docker-compose.ymlvớinginx,flask, vàpostgres. - Tăng quy mô dịch vụ Flask lên 3 bản sao.
- Thêm một healthcheck cho Postgres.
- Chạy và xác nhận việc tăng quy mô và phụ thuộc.
7. Câu hỏi thường gặp
H: Docker Compose có thể sử dụng để quản lý bao nhiêu container?
Đ: Docker Compose có thể quản lý hàng trăm container, tùy thuộc vào cấu hình và tài nguyên hệ thống.
H: Có cách nào để xen kẽ giữa các file cấu hình không?
Đ: Có, bạn có thể sử dụng nhiều file cấu hình như đã nêu ở phần Ghi đè cấu hình.
Kết luận
Docker Compose là công cụ mạnh mẽ giúp quản lý các ứng dụng đa container. Với các tính năng nâng cao như tăng quy mô, phụ thuộc dịch vụ, và kiểm tra sức khỏe, bạn có thể dễ dàng điều phối các dịch vụ phức tạp.
👉 Hãy thử áp dụng những gì bạn đã học hôm nay và chia sẻ trải nghiệm của bạn với cộng đồng!