溫馨提示×

Docker在Ubuntu中的資源限制怎么設置

小樊
54
2025-04-11 15:14:33
欄目: 智能運維

在Ubuntu中,使用Docker時可以通過docker run命令的參數來設置資源限制。主要的資源限制包括CPU、內存、磁盤I/O和網絡帶寬。以下是一些常用的參數:

CPU限制

  • --cpus-c: 限制容器可以使用的CPU核心數。
    docker run --cpus=2 ubuntu:latest
    

內存限制

  • --memory-m: 限制容器可以使用的最大內存量。
    docker run --memory=512m ubuntu:latest
    
  • --memory-swap: 限制容器可以使用的總內存(包括交換空間)。
    docker run --memory-swap=1g ubuntu:latest
    

磁盤I/O限制

Docker本身不直接支持磁盤I/O限制,但可以通過cgroups(控制組)來實現??梢允褂?code>--device-read-bps和--device-write-bps參數來限制設備的讀寫速度。

docker run --device-read-bps=/dev/sda:1mb ubuntu:latest
docker run --device-write-bps=/dev/sda:1mb ubuntu:latest

網絡帶寬限制

Docker本身也不直接支持網絡帶寬限制,但可以通過cgroups來實現??梢允褂?code>--net-classic參數來啟用經典網絡模式,并結合cgroups工具(如cgcreate、cgset等)來設置網絡帶寬限制。

示例

以下是一個綜合示例,展示了如何設置CPU、內存和磁盤I/O限制:

docker run --cpus=2 \
           --memory=512m \
           --memory-swap=1g \
           --device-read-bps=/dev/sda:1mb \
           --device-write-bps=/dev/sda:1mb \
           ubuntu:latest

持久化設置

如果你希望這些資源限制在容器重啟后仍然有效,可以將這些參數添加到Docker的配置文件中(通常是/etc/docker/daemon.json),然后重啟Docker服務:

{
  "default-ulimits": {
    "memlock": {
      "Name": "memlock",
      "Hard": -1,
      "Soft": -1
    }
  },
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

然后重啟Docker服務:

sudo systemctl restart docker

通過這些方法,你可以在Ubuntu中靈活地設置Docker容器的資源限制。

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