1.环境
- CentOS 7.X
- Docker 20.10.12
- Docker-compose v2.6.0
2.现象
- 通过 docker run --cpus 参数可以限制 CPU ,docker inpsect 可以看到 NanoCpus 生效了
- 但通过 docker-compose 创建的容器,docker inpsect 可以看到 NanoCpus 未变化
- build 了一个运行 stress 的镜像,通过 docker stats 看到,docker-compose 启动的 CPU 未限制
- 通过运行官方的示例仍然是未生效,但 memory 和 cpuset 却可以生效。。。
3.参考文档
version: "3.9"
services:
redis:
image: redis:alpine
deploy:
resources:
limits:
cpus: '0.50'
memory: 50M
reservations:
cpus: '0.25'
memory: 20M
第 1 条附言 · 2023 年 3 月 22 日
自己在更新 docker-compose 至最新的 v2.17.0 版本后,运行官方示例,竟然可以了。。。\狗头
11 条回复 • 2023-03-22 17:24:39 +08:00
|
1
privil 2023 年 3 月 22 日
docker-compose 这玩意怎么说呢,维护得比较差,很多参数可能坑比较大。
|
|
2
modrich 2023 年 3 月 22 日
2.启动 container 时加入--compatibility 参数
docker-compose --compatibility up -d 详见 https://www.jianshu.com/p/ba5518476057 |
|
3
ryan4290 2023 年 3 月 22 日
是不是为了 Oracle 的实例 “保活” ? hh
|
|
4
jenlors 2023 年 3 月 22 日
docker-compose 需要在 swarm 模式下才能限制 CPU 内存这些东西,单机模式是不支持的
|
|
5
SKYNE OP |
|
6
SKYNE OP 自己在更新 Docker-compose 至最新的 v2.17.0 版本后,运行官方示例,竟然可以了。。。\狗头
|
|
9
jenlors 2023 年 3 月 22 日
奇怪,可能是官方文档没及时更新吧,https://docs.docker.com/compose/compose-file/compose-file-v3/#deploy
> sub-options only takes effect when deploying to a swarm with docker stack deploy, and is ignored by docker-compose up and docker-compose run, except for resources. |
|
10
jenlors 2023 年 3 月 22 日
修正,好像是说除了 resources 其它都不生效
|
• 请不要在回答技术问题时复制粘贴 AI 生成的内容