Docker dựa vào cgroups để đặt trần tài nguyên ngay khi chạy. Mặc định container dùng tài nguyên gần như không giới hạn, nên trên host nhiều container cần đặt limit rõ ràng.
Memory:
- --memory (hard limit): vượt trần thì kernel OOM-kill process trong container.
- --memory-reservation (soft limit): mức cam kết, kernel cố ép về khi host thiếu RAM.
CPU:
- --cpus="1.5": giới hạn tối đa 1.5 core (cách trực quan nhất).
- --cpu-shares: trọng số tương đối khi các container tranh CPU, chỉ có tác dụng khi CPU bão hòa.
docker run --memory=512m --cpus="1.5" myappLưu ý interview: hard memory limit là ranh giới cứng — app JVM/Node cần biết limit để đặt heap, nếu không process có thể bị OOM-kill dù bên trong tưởng còn RAM.
Đây cũng là cơ sở cho resources.limits/requests trong Kubernetes.