如何在docker compose file中限制系統資源的使用
前言
這也算是在舉辦 TSCCTF 中整理的一些資訊,因為題目都是放在docker container中跑,為了避免題目被打穿佔用資源影響到其他題目的正常運作,所以當時幫出題人員整理了一下在docker compose file中限制系統資源使用的方式。
不過現在docker中已經包含了compose組件,而compose組件吃的格式和docker-compose
指令吃的格式有點不一樣,所以重新整理了這一篇文章。
格式
▶
docker-compose version 2、3中限制的方法
這兩種格式已經被棄用[1]
version 2
1 |
|
version3
1 |
|
docker-compose v3下必須在docker-compose
後加上參數啟動
docker-compose --compatibility up -d
其實也可以用docker stack deploy --compose-file docker-compose.yml stack_name
來deploy,但是必須先初始化docker stack
compose組件
這個版本的compose格式應該會是現行的版本,這部份參考自docker官網的文檔[2]
1 |
|
這個版本的格式不再需要指定version
,使用docker compose -f compose.yml up -d
啟動(如果在compose.yml
的目錄可以不加-f
)
參考
- Legacy versions | Docker Docs ↩
- Services top-level elements | Docker Docs ↩
- Setting Memory And CPU Limits In Docker | Baeldung on Ops ↩
- 在 Docker Compose file 3 下限制 CPU 與 Memory - Yowko’s Notes ↩
- How to specify Memory & CPU limit in docker compose version 3 - Stack Overflow ↩
- How to limit IO speed in docker and share file with system in the same time? - Stack Overflow ↩
- Docker, mount volumes as readonly - Stack Overflow ↩
如何在docker compose file中限制系統資源的使用
https://www.zenwen.eu.org/docker-compose-file-limit-resource/