ubuntu

Docker在Ubuntu中的资源限制如何设置

小樊
40
2025-05-07 20:46:17
栏目: 智能运维

在Ubuntu中设置Docker容器的资源限制,可以通过以下几种方式实现:

1. 使用 docker run 命令的参数

你可以在启动容器时使用 --cpus--memory 参数来限制CPU和内存的使用。

2. 使用 Docker Compose

如果你使用Docker Compose来管理容器,可以在 docker-compose.yml 文件中设置资源限制。

version: '3'
services:
  myservice:
    image: ubuntu:latest
    deploy:
      resources:
        reservations:
          cpus: '0.5'
          memory: 256M
        limits:
          cpus: '2'
          memory: 512M

3. 使用 systemd 服务文件

如果你通过 systemd 管理 Docker 容器,可以在服务文件中设置资源限制。

[Service]
ExecStart=/usr/bin/docker start -a mycontainer
ExecStop=/usr/bin/docker stop -t 2 mycontainer
Restart=on-failure

[Install]
WantedBy=multi-user.target

[Service]
CPUQuota=50%
MemoryLimit=512M

4. 使用 cgroups

Docker 使用 cgroups 来管理容器的资源限制。你可以直接操作 cgroups 来更细粒度地控制资源。

首先,找到容器的 cgroup 路径:

docker inspect --format='{{ .HostConfig.CgroupParent }}' <container_id>

然后,进入该路径并编辑相应的 cgroup 文件:

cd /sys/fs/cgroup/cpu/docker/<container_id>
echo 200000 > cpu.cfs_quota_us
echo 100000 > cpu.cfs_period_us

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

注意事项

通过以上方法,你可以在Ubuntu中有效地设置Docker容器的资源限制。

0
看了该问题的人还看了