这是我的docker-compose.yaml文件的一部分
version: '3.4'
services:
app:
build:
context: .
dockerfile: Dockerfile
working_dir: /app
deploy:
resources:
limits:
cpus: '0.50'
memory: 23M
启动docker-compose up -d
当我做docker stats
时,它说限制仍然是1.9GiB。我在做什么错了?
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM %
13b6588evc1e app_1 1.86% 20.45MiB / 1.952GiB 1.02%
答案 0 :(得分:0)
deploy
键仅适用于群体模式以及docker-compose文件版本3及更高版本。
在您的情况下,请使用docker-compose文件版本2并定义资源限制:
version: "2.2"
services:
app:
image: foo
cpus: "0.5"
mem_limit: 23m
请参阅官方文档here
答案 1 :(得分:0)
您是否以群体模式运行docker-compose?如果不建议运行2.x版本的撰写文件格式。
3.X要求docker-compose必须以swarm模式运行,以使新的一组资源指令生效。
2.X中的替代方案是cpu_shares,cpu_quota,cpuset,mem_limit,memswap_limit,mem_swappiness
答案 2 :(得分:0)
如果您不打算使用docker swarm堆栈部署,请始终坚持使用您所操作的docker引擎版本支持的最新2.x版本。 Docker 17.12和更高版本支持撰写文件版本2.4。 Docker-Compose具有cli提供的所有功能,而swarm仍然缺少其中一些功能:请参阅https://github.com/moby/moby/issues/25303。
如果使用docker-compose,则3.x文件中所有与群相关的元素都将被忽略,除了机密(还是配置?!)。如果您开始混合仅3.x元素和仅2.x元素,则配置将无效。