Giới Thiệu
Chào mừng bạn quay lại! Sau khi đã làm quen với Docker Compose và Swarm một cách riêng lẻ, đã đến lúc kết hợp sức mạnh của chúng. Trong bài viết này, chúng ta sẽ khám phá cách triển khai ứng dụng đa container trên nhiều máy chủ bằng cách sử dụng Compose cùng với Swarm.
Tại Sao Nên Tích Hợp Compose với Swarm?
- Docker Compose giúp đơn giản hóa việc định nghĩa dịch vụ.
- Docker Swarm cung cấp khả năng điều phối, mở rộng và độ sẵn sàng cao.
- Khi kết hợp, chúng cho phép triển khai các ứng dụng phức tạp trên nhiều cluster dễ dàng hơn.
Chuẩn Bị Docker Compose cho Swarm
- Docker Compose phiên bản 3 hỗ trợ chế độ Swarm.
- Định nghĩa dịch vụ, mạng, và volumes như thường lệ.
- Sử dụng phần
deploycho các cài đặt cụ thể của Swarm:
yaml
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
Triển Khai Docker Compose lên Swarm
Để triển khai Docker Compose lên Swarm, sử dụng lệnh sau:
bash
docker stack deploy -c docker-compose.yml mystack
- Lệnh
docker stack deploysẽ hiểu các tệp Compose trong chế độ Swarm. - Các dịch vụ được định nghĩa trong Compose bây giờ trở thành các dịch vụ Swarm.
Kiểm tra các dịch vụ đang chạy:
bash
docker stack services mystack
Tăng Quy Mô & Cập Nhật
- Để mở rộng một dịch vụ:
bash
docker service scale mystack_web=5
- Thực hiện cập nhật cuộn bằng cách cập nhật hình ảnh trong
docker-compose.ymlvà triển khai lại:
bash
docker stack deploy -c docker-compose.yml mystack
Mạng & Bảo Mật
- Mạng overlay được định nghĩa trong Compose sẽ tự động được tạo ra trên các node Swarm.
- Các bí mật và cấu hình cũng có thể được định nghĩa trong Compose:
yaml
secrets:
db_password:
file: ./db_password.txt
services:
db:
image: postgres:latest
secrets:
- db_password
Thực Hành Tốt Nhất
- Sử dụng Compose phiên bản 3+ để tương thích với Swarm.
- Định nghĩa replicas, update_config, và restart_policy trong phần deploy.
- Sử dụng mạng overlay cho giao tiếp đa máy chủ.
- Quản lý bí mật và cấu hình thông qua Compose.
- Thử nghiệm trên một cluster Swarm nhỏ trước khi triển khai vào sản xuất.
Thử Thách Thực Hành
- Tạo một ứng dụng Compose đa container (web + db + cache).
- Thêm cài đặt triển khai cho Swarm (replicas, update_config).
- Triển khai nó bằng
docker stack deploytrên nhiều node. - Kiểm tra khả năng mở rộng, cập nhật cuộn, và sử dụng bí mật.
✅ Tập Tiếp Theo: Tập 25 — Khắc Phục và Gỡ Rối Docker: Các Vấn Đề Thường Gặp & Giải Quyết — học cách xác định và giải quyết các vấn đề container trong thực tế một cách hiệu quả.