您好,登錄后才能下訂單哦!
本篇文章和大家了解一下Docker Compose中限制容器的CPU和內存使用的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
最近我在使用開源統計Umami過程中,發現CPU和內存經常占滿,導致其它服務都不能正常使用。Umami我使用的docker-compose
進行部署,于是打算使用docker-compose
限制下容器的CPU和內存使用來解決這個問題。
于是我就去搜索相關文檔尋找限制容器資源使用率的方法,給我的感覺是Docker官方在設計docker-compose的時候有點混亂。
首先是docker-compose
的版本分1.x
和2.x
不同版本特性不一樣
docker-compose.yaml
里面的version
又分多個版本(1.x-3.x),不同的版本特性不一樣
官方似乎沒有明確的文檔指名各版本的區別,而且升級版本的速度還賊快
我直接貼出Umami的完整docker-compose.yaml
內容:
--- version: '3' services: umami: image: docker.umami.dev/umami-software/umami:mysql-latest deploy: resources: limits: cpus: '0.50' memory: 500M reservations: cpus: '0.25' memory: 200M ports: - "3000:3000" environment: DATABASE_URL: mysql://umami:xxx@127.0.0.1:3306/umami DATABASE_TYPE: mysql HASH_SALT: replace-me-with-a-random-string restart: always network_mode: "host"
限制指令為deploy.resources.limits
這部分,注意節點位置,上面這部分限制的含義是:
Umami服務的CPU使用被限制在最多50%的CPU能力,內存使用被限制在最多500MB。同時,這個服務至少需要25%的CPU和200MB的內存。
我們啟動的時候命令需要發生一些變化,否則不會生效:
#原本的啟動命令為 docker-compse up -d # 需要添加一個參數--compatibility表示以兼容模式來運行 docker-compose --compatibility up -d
這里的關鍵在于添加--compatibility
參數以兼容模式來運行,否則限制不會生效。
通過上述方法限制容器CPU和內存后,再繼續使用命令:docker stats
查看容器資源使用情況:
可以看到umami
這個容器被成功限制為500MB
內存。
docker-compose的版本設計非常混亂,且沒找到明確的官方特性對比說明
docker-compose.yaml
限制內存需要添加deploy.resources.limits
節點
docker-compose
命令啟動的時候需要添加--compatibility
參數以兼容模式來運行,否則限制不會生效
以上就是Docker Compose中限制容器的CPU和內存使用的方法的簡略介紹,當然詳細使用上面的不同還得要大家自己使用過才領會。如果想了解更多,歡迎關注億速云行業資訊頻道哦!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。