溫馨提示×

Debian系統Docker資源如何分配

小樊
63
2025-06-13 19:14:26
欄目: 智能運維

在Debian系統中,可以通過以下幾種方式來分配和管理Docker容器的資源:

使用 docker run 命令的參數

當運行一個Docker容器時,可以使用 --cpus--memory 參數來限制容器的CPU和內存使用。例如:

docker run -it --cpus="2" --memory="4g" debian:latest /bin/bash

在這個例子中,我們為容器分配了2個CPU核心和4GB內存。

使用 Docker Compose

如果你使用 Docker Compose 來管理多個容器,可以在 docker-compose.yml 文件中為每個服務指定資源限制。例如:

version: '3'
services:
  web:
    image: debian:latest
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 2g
        reservations:
          cpus: '0.25'
          memory: 1g

在這個例子中,我們為名為 web 的服務分配了0.50個CPU核心和2GB內存,同時保留了0.25個CPU核心和1GB內存。

使用 cgroups(控制組)

cgroups 是 Linux 內核的一個功能,可以用來限制、記錄和隔離進程組的資源使用(如CPU、內存、磁盤I/O等)。在Debian系統中,可以使用 systemdcgcreate 等工具來創建和管理cgroup。

首先,安裝 cgroup-tools

sudo apt-get install cgroup-tools

然后,創建一個新的cgroup并限制資源使用:

sudo cgcreate -g cpu:/my_container
echo "1000" > /sys/fs/cgroup/cpu/my_container/cpu.cfs_period_us
echo "500" > /sys/fs/cgroup/cpu/my_container/cpu.cfs_quota_us
echo "2048" > /sys/fs/cgroup/memory/my_container/memory.limit_in_bytes

最后,將容器添加到cgroup:

sudo cgclassify -g cpu,memory:my_container $(docker inspect --format '{{.Pid}}' <container_id>)

在這個例子中,我們為名為 my_container 的cgroup分配了1000ms的CPU時間片和500ms的CPU配額,以及2GB的內存限制。

使用 Docker Daemon 配置

你也可以通過修改 Docker Daemon 的配置文件 /etc/docker/daemon.json 來設置全局資源限制。例如:

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

然后重啟 Docker Daemon:

sudo systemctl restart docker

通過以上方法,你可以在 Debian 系統中靈活地設置 Docker 容器的資源限制,以確保系統的穩定性和資源的合理分配。

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