1. Tổng quan về Service
- Service: Cách deploy ứng dụng trên swarm mode.
- Khi service được tạo:
- Swarm Manager nhận service definition (định nghĩa trạng thái mong muốn).
- Tạo ra các task replicas tương ứng với số replicas yêu cầu.
- Mỗi task tạo ra 1 container.
- Nếu task bị lỗi/stop → Swarm tự tái tạo task mới để đảm bảo đủ replicas.
2. Tạo Service
docker service create -d --name nginx_service -p 8080:80 --replicas 2 nginx:latest
d: chạy detached.-name: tên service.p: ánh xạ port (8080 máy chủ : 80 container).-replicas: số lượng container replicas.nginx:latest: image.
3. Quản lý Service
| Lệnh | Mô tả |
|---|---|
docker service ls | Liệt kê các service đang chạy. |
docker service inspect <service-name> | Xem thông tin chi tiết của service. |
docker service logs <service-name> | Xem log từ tất cả replicas của service. |
docker service ps <service-name> | Liệt kê các task của service. |
- Inspect sẽ cho biết:
- Name, Image
- Số replicas
- Ports mapping
- Endpoint, Virtual IP
- Network liên quan (vd: ingress overlay network)
4. Scaling Service
- Tăng số replicas:
docker service scale nginx_service=3
- Giảm số replicas:
docker service scale nginx_service=2
5. Cập nhật Service
docker service update <flags> <service-name>
Một số flags:
-env-add: thêm biến môi trường.-env-rm: xoá biến môi trường.-limit-cpu: giới hạn CPU.-limit-memory: giới hạn bộ nhớ.-mount-add: thêm volume mount.-mount-rm: xoá volume mount.-network-add/-network-rm: quản lý networks.
Kiểm tra flags hỗ trợ:
docker service update
6. Truy cập Service
- Không curl được localhost:8080 từ manager vì:
- Container phân tán trên các node khác.
- Service expose port 8080 trên toàn cluster → phải dùng IP public/private.
curl <manager_or_worker_private_ip>:8080
7. Tổng kết
- Service giúp:
- Quản lý số lượng container dễ dàng.
- Tự động cân bằng tải.
- Đảm bảo High Availability.
- Cho phép cập nhật & thay đổi cấu hình linh hoạt.