溫馨提示×

ubuntu上docker容器的資源限制

小樊
51
2025-08-09 11:49:47
欄目: 智能運維

在Ubuntu上可通過以下方式限制Docker容器資源:

一、命令行參數(docker run)

  • CPU限制
    • --cpus <數值>:限制CPU核心數(如--cpus 1.5表示1.5個核心)。
    • --cpu-shares <權重>:設置CPU資源分配權重(默認1024,數值越大優先級越高)。
    • --cpuset-cpus <核心列表>:綁定容器到指定CPU核心(如--cpuset-cpus 0,2)。
  • 內存限制
    • --memory <大小>(或-m):設置內存硬限制(如-m 512m)。
    • --memory-swap <大小>:設置內存+交換空間總和(如--memory-swap 1g)。
    • --memory-reservation <大小>:設置內存軟限制(系統壓力大時生效,需小于硬限制)。
  • 磁盤I/O限制
    • --device-write-bps <設備路徑:速率>:限制寫入速度(如--device-write-bps /dev/sda:30MB)。
    • --blkio-weight <權重>:設置磁盤I/O權重(10-1000,默認100)。

二、Docker Compose配置

docker-compose.yml中通過deploy.resources設置:

services:  
  app:  
    image: ubuntu  
    deploy:  
      resources:  
        limits:  
          cpus: '1'  
          memory: 512M  
        reservations:  
          cpus: '0.5'  
          memory: 256M  

limits為硬限制,reservations為軟預留)。

三、系統級配置

  • 修改內核參數:通過/etc/sysctl.conf調整系統資源限制(如vm.swappiness控制交換空間使用傾向)。
  • cgroups直接操作:通過/sys/fs/cgroup/路徑手動修改容器的cgroup參數(需深入理解cgroups機制)。

注意事項

  • 部分參數(如--cpus)需宿主機內核支持,可通過docker info檢查。
  • 資源限制需在容器啟動前設置,運行中修改需使用docker update命令。
  • 生產環境中建議結合監控工具(如docker stats、cAdvisor)動態調整資源分配。

參考來源:[1,2,3,4,5,6,7,8,9,10]

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女