溫馨提示×

CentOS上如何限制Docker資源使用

小樊
40
2025-08-26 16:00:54
欄目: 智能運維

在CentOS上限制Docker容器的資源使用,可以通過以下幾種方式實現:

1. 使用 docker run 命令的參數

你可以在啟動容器時使用 docker run 命令的參數來限制資源使用。

限制CPU使用

docker run --cpus=1 my_image

這會限制容器最多使用1個CPU核心。

限制內存使用

docker run --memory=512m my_image

這會限制容器最多使用512MB的內存。

同時限制CPU和內存

docker run --cpus=1 --memory=512m my_image

2. 使用 docker update 命令

如果你已經啟動了一個容器,可以使用 docker update 命令來更新其資源限制。

更新CPU限制

docker update --cpus=1 my_container

更新內存限制

docker update --memory=512m my_container

3. 使用 Docker Compose

如果你使用 Docker Compose 來管理容器,可以在 docker-compose.yml 文件中指定資源限制。

限制CPU和內存

version: '3'
services:
  my_service:
    image: my_image
    deploy:
      resources:
        reservations:
          cpus: '0.5'
          memory: 256M
        limits:
          cpus: '1'
          memory: 512M

4. 使用 cgroups

Docker 使用 Linux 的 cgroups(控制組)來限制容器的資源使用。你可以手動配置 cgroups 來更精細地控制資源分配。

查看 cgroups 配置

cat /sys/fs/cgroup/cpu/docker/<container_id>/cpu.shares
cat /sys/fs/cgroup/memory/docker/<container_id>/memory.limit_in_bytes

修改 cgroups 配置

echo 536870912 > /sys/fs/cgroup/memory/docker/<container_id>/memory.limit_in_bytes

5. 使用 systemd

如果你使用 systemd 來管理 Docker 服務,可以在 systemd 服務文件中設置資源限制。

編輯 systemd 服務文件

sudo vi /etc/systemd/system/my_service.service

添加資源限制

[Service]
ExecStart=/usr/bin/docker run --cpus=1 --memory=512m my_image

重新加載 systemd 配置并重啟服務

sudo systemctl daemon-reload
sudo systemctl restart my_service

通過以上幾種方法,你可以在CentOS上有效地限制Docker容器的資源使用。選擇哪種方法取決于你的具體需求和使用場景。

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