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

docker run一个镜像如何指定最大可使用的内存大小、cpu大小

在 Docker 中,你可以通过 --memory--cpus 参数来指定容器的最大内存和 CPU 限制。这样可以确保容器不会超出特定的资源限制,从而避免影响主机的其他进程。

1. 限制内存(--memory

通过 --memory-m 参数,你可以指定容器的最大内存使用量。容器将在运行时根据这个限制分配内存。

示例:
docker run -m 512m <image_name>

这将设置容器的最大内存为 512 MB

可用的单位:
  • bbytes(字节)
  • kkb(千字节)
  • mmb(兆字节)
  • ggb(吉字节)
示例(设置 2 GB 内存):
docker run -m 2g <image_name>

2. 限制 CPU(--cpus

通过 --cpus 参数,你可以限制容器使用的 CPU 核心数。例如,如果你限制容器使用最多 2 个 CPU 核心,可以使用如下命令:

示例:
docker run --cpus="2.0" <image_name>

这将容器的 CPU 限制设置为最多 2 个 CPU 核心。

示例(设置容器使用 1.5 个 CPU):
docker run --cpus="1.5" <image_name>

--cpus 的值可以是一个小数,表示容器使用部分 CPU 核心。比如 1.5 表示容器可以使用 1.5 个 CPU 核心。

3. 同时设置内存和 CPU 限制

你可以同时设置内存和 CPU 限制。比如限制内存为 1 GB,CPU 核心数为 2:

示例:
docker run -m 1g --cpus="2.0" <image_name>

4. 其他相关资源限制

  • --memory-swap:限制容器可以使用的交换空间(swap)。如果没有设置,默认值是 memory * 2。你可以设置为与内存大小相等的值,或者设置为更大的值。

docker run -m 512m --memory-swap 1g <image_name>
  • 这将设置内存为 512 MB,交换空间为 1 GB。

  • --cpu-shares:指定容器在多个容器共享 CPU 资源时的权重。它是一个相对值,默认值为 1024。这个值不限制容器可以使用的 CPU 数量,而是决定容器的 CPU 权重。

  • 这里设置容器的 CPU 权重为 512,相对默认值 1024,这意味着该容器的 CPU 使用优先级较低。

  • --cpu-period--cpu-quota:这两个参数可以控制容器每个周期内的 CPU 时间。例如,通过配置这些参数,可以限制容器在某个时间窗口内的最大 CPU 使用。

docker run --cpu-period=100000 --cpu-quota=50000 <image_name>
  • 这会将容器的 CPU 限制为 50% 的一个 CPU 核心(100000 微秒的时间窗口内,容器最多可以使用 50000 微秒的 CPU 时间)。

5. 综合示例

假设你想运行一个容器,并限制它使用 1 GB 内存和最多 2 个 CPU 核心,同时设置交换空间为 2 GB,可以使用以下命令:

总结:

  • --memory-m:限制容器的最大内存使用。
  • --cpus:限制容器的最大 CPU 使用数量。
  • --memory-swap:设置容器最大可用的交换空间(swap)。
  • --cpu-shares:设置容器的 CPU 权重,控制容器在 CPU 资源竞争中的优先级。
  • --cpu-period--cpu-quota:更精细地控制容器的 CPU 使用时间。

这些参数可以帮助你确保容器不会过度消耗系统资源,影响其他进程的运行。


http://www.kler.cn/a/504342.html

相关文章:

  • QT在 MacOS X上,如何检测点击程序坞中的Dock图标
  • Qwins的使用
  • SimpleFOC01|基于STM32F103+CubeMX,移植核心的common代码
  • 【Unity功能集】TextureShop纹理工坊(十三)打开、保存工程【TSD文件】(终章)
  • nacos环境搭建以及SpringCloudAlibaba脚手架启动环境映射开发程序
  • 【HTML+CSS+JS+VUE】web前端教程-31-css3新特性
  • 一.项目课题 <基于TCP的文件传输协议实现>
  • Linux下杂项设备驱动的编写
  • Elasticsearch技术标准解析与实践案例
  • 软路由如何实现电脑手机一机一IP
  • springboot 根据UUID生成唯一的短链接
  • 如何学好数据结构?
  • 大数据原生集群 (Hadoop3.X为核心) 本地测试环境搭建二
  • 如何备考PostgreSQL中级认证
  • 统计有序矩阵中的负数
  • STM32第6章、WWDG
  • linux stdout/stderr重定向到文件,>或tee
  • 小结:华为交换机常用的操作指令
  • 43.Textbox的数据绑定 C#例子 WPF例子
  • Spring MVC复杂数据绑定-绑定数组
  • 13:00面试,13:08就出来了,问的问题有点变态。。。
  • 2025最新JAVA面试八股文【基础篇】
  • Rk3568 Andorid 11 新增adb检测,只有使用客户私钥的设备才能链接adb
  • 集中式架构vs分布式架构
  • 【硕博研究生国际会议推荐(可线上)】方向涵盖电子信息、人工智能、能源利用、自动化、数据处理、信息化经济、管理、智慧城市、公共交通、计算机视觉...
  • 数据结构和算法-07平衡二叉树-01