【发布时间】:2022-01-24 12:28:52
【问题描述】:
我对 docker 很陌生,我正在尝试运行一些 minecraft 容器,但是它们似乎没有遵守我设置的 CPU 限制。正如您在注释掉的部分中看到的那样,我也尝试过使用 v3。无论我设置什么限制,容器都会在 docker stats 中显示高达 400% 的 cpu 使用率。它是一个由 Oracle 托管的 4cpu 虚拟机,运行 Ubuntu。
还有其他方法可以强制执行此限制吗?
---
version: "2.4"
#version: "3.9"
services:
mc-cl:
container_name: mc-crimson
image: itzg/minecraft-server:java11
ports:
- 25566:25565
volumes:
- ./data:/data
environment:
- TYPE=PAPER
- VERSION=1.15.2
- EULA=TRUE
- MEMORY=1536M
- GID=1001
- UID=1001
- USE_AIKAR_FLAGS=true
cpus: 1
mem_limit: 3072M
mem_reservation: 3072M
# deploy:
# resources:
# limits:
# cpus: '1'
# memory: 3072M
# reservations:
# cpus: '0.5'
# memory: 3072M
restart: unless-stopped
如果有帮助,这是我的 docker 版本和 docker compose 版本。
客户:Docker 引擎 - 社区
版本:20.10.12
API 版本:1.41
Go 版本:go1.16.12
Git 提交:e91ed57
建成:2021 年 12 月 13 日星期一 11:44:28
操作系统/架构:linux/arm64
上下文:默认
实验:是的
服务器:Docker 引擎 - 社区
引擎:
版本:20.10.12
API 版本:1.41(最低版本 1.12)
Go 版本:go1.16.12
Git 提交:459d0df
建成:2021 年 12 月 13 日星期一 11:43:05
操作系统/架构:linux/arm64
实验性:错误
容器化:
版本:1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
运行:
版本:1.0.2
GitCommit:v1.0.2-0-g52b36a2
码头工人初始化:
版本:0.19.0
GitCommit:de40ad0
Docker Compose 版本 v2.2.2
【问题讨论】:
-
如果没记错的话--compatability up 将 v3 转换为 v2 对应版本。鉴于我已明确尝试使用 v2 格式进行此操作。我不确定这会奏效。编辑:无论如何我都尝试过,但没有效果。
-
这是不正确的。该解决方案是为了避免使用 v2。确保你像他一样遵循每一步
-
"1.20.0 引入了一个新的 --compatibility 标志,旨在帮助开发人员更轻松地过渡到版本 3。启用后,docker-compose 会读取每个服务定义的部署部分并尝试将其转换为等效的版本 2 参数。” 对于 YAML 的部署部分,它执行我所说的。我还说我也在 V2 中使用 V2 标签编写了 compose 文件,但仍然没有遵守限制,允许 cpu 最高达到 400%。我不需要编写 v3 compose 文件,但尝试了它是否有所作为。
标签: docker docker-compose