当前位置:首页 > Ubuntu > 正文

Ubuntu容器资源限制配置(Docker中如何限制CPU与内存使用)

在使用 Docker 运行 Ubuntu 容器时,合理配置资源限制是保障系统稳定性和多服务共存的关键。本文将手把手教你如何对 Ubuntu 容器进行 资源限制,包括 CPU、内存等核心参数的设置,即使是刚接触容器技术的小白也能轻松上手。

Ubuntu容器资源限制配置(Docker中如何限制CPU与内存使用) Ubuntu容器资源限制 Docker资源限制 容器CPU内存限制 Linux容器性能优化 第1张

为什么需要限制容器资源?

如果不加以限制,一个失控的容器可能会占用主机全部 CPU 或内存资源,导致其他服务崩溃甚至整个服务器宕机。通过设置 Ubuntu容器资源限制,我们可以确保每个容器只使用分配给它的资源,从而提升系统整体稳定性。

准备工作

请确保你已安装 Docker,并能正常运行容器。你可以通过以下命令检查:

docker --versionsystemctl status docker

1. 限制内存使用

使用 --memory(或简写为 -m)参数可以限制容器最大可用内存。例如,启动一个最多使用 512MB 内存的 Ubuntu 容器:

docker run -it \  --memory="512m" \  ubuntu:22.04 /bin/bash

你还可以设置交换内存(swap)限制。若要完全禁用 swap,可加上 --memory-swap 参数并设为与内存相同值:

docker run -it \  --memory="512m" \  --memory-swap="512m" \  ubuntu:22.04 /bin/bash

2. 限制 CPU 使用

Docker 提供多种方式限制 CPU 资源,最常用的是 --cpus 参数,它指定容器最多可使用的 CPU 核心数(支持小数)。

docker run -it \  --cpus="1.5" \  ubuntu:22.04 /bin/bash

上述命令表示容器最多可使用 1.5 个 CPU 核心。你也可以使用更底层的 --cpu-quota--cpu-period 进行微调,但一般推荐使用 --cpus,更直观易懂。

3. 同时限制 CPU 与内存

实际部署中,通常会同时限制 CPU 和内存。下面是一个完整的例子:

docker run -d \  --name my-ubuntu-app \  --memory="1g" \  --memory-swap="1g" \  --cpus="2" \  ubuntu:22.04 \  sleep infinity

该命令以后台模式(-d)启动一个名为 my-ubuntu-app 的容器,限制其使用 1GB 内存和 2 个 CPU 核心。

4. 查看容器资源使用情况

运行后,你可以使用以下命令实时监控容器资源消耗:

docker stats my-ubuntu-app

输出将显示 CPU 使用率、内存使用量、网络 I/O 等信息,帮助你验证 Docker资源限制 是否生效。

5. 在 docker-compose 中配置资源限制

如果你使用 docker-compose.yml 管理服务,可以在 deployresources 字段中设置限制(注意:某些字段仅在 Swarm 模式下生效)。对于普通 Compose 文件,应使用 mem_limitcpus

version: '3.8'services:  ubuntu-app:    image: ubuntu:22.04    command: sleep infinity    mem_limit: 1g    cpus: 2

然后运行 docker-compose up -d 即可应用这些 容器CPU内存限制

总结

通过合理配置 Linux容器性能优化 参数,如内存上限、CPU 核心数等,你可以有效防止容器资源滥用,提升服务器整体稳定性与安全性。无论是开发测试还是生产环境,这些实践都至关重要。

希望这篇教程能帮助你掌握 Ubuntu 容器的资源限制方法。如有疑问,欢迎在评论区交流!