Docker Compose V3 可以為每個容器分配 CPU 使用率及 RAM 使用上限,這些資源限制可以透過 resources
部分來配置。這個設定取代了 Compose 文件版本 3 之前的舊版資源限制選項(例如:cpu_shares
、cpu_quota
、cpuset
、mem_limit
、memswap_limit
、mem_swappiness
)。如果你需要升級從版本 2 到版本 3 的 Compose 文件,可以參考 "Upgrading version 2.x to 3.x" 以了解版本 2 與版本 3 之間的差異。
以下是一個通用的示例,展示了如何為 redis 服務配置資源限制,限制該服務使用的記憶體不超過 50M,並且使用 CPU 時間不超過 0.50(佔用一個核心的 50%),同時預留了 20M 的記憶體和 0.25 的 CPU 時間(始終可供使用):
version: "3.8"
services:
redis:
image: redis:alpine
deploy:
resources:
limits:
cpus: '0.50'
memory: 50M
reservations:
cpus: '0.25'
memory: 20M
參考資料:https://docs.docker.com/compose/compose-file/compose-file-v3/