docker-撰写不遵守 CPU 限制
docker-compose not honoring CPU limits
我是 docker 的新手,我正在尝试 运行 一些 minecraft 容器,但是它们似乎没有遵守 cpu 限制环境。正如您在注释掉的部分中看到的那样,我也尝试过使用 v3。无论我设置什么限制,容器都会在 docker 统计信息中显示高达 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 撰写版本。
Client: Docker Engine - Community
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:44:28 2021
OS/Arch: linux/arm64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:43:05 2021
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Docker Compose version v2.2.2
所以我已经设法解决了我自己的问题。我有一个想法,所以我通过删除 docker compose v2 (yaml v3) with
来做到这一点
rm ~/.docker/cli-plugins/docker-compose
并使用
从存储库安装 docker-compose v1.25.0
apt install docker-compose -y
当 运行 容器时,现在将遵守限制。
我是 docker 的新手,我正在尝试 运行 一些 minecraft 容器,但是它们似乎没有遵守 cpu 限制环境。正如您在注释掉的部分中看到的那样,我也尝试过使用 v3。无论我设置什么限制,容器都会在 docker 统计信息中显示高达 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 撰写版本。
Client: Docker Engine - Community
Version: 20.10.12
API version: 1.41
Go version: go1.16.12
Git commit: e91ed57
Built: Mon Dec 13 11:44:28 2021
OS/Arch: linux/arm64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.16.12
Git commit: 459d0df
Built: Mon Dec 13 11:43:05 2021
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Docker Compose version v2.2.2
所以我已经设法解决了我自己的问题。我有一个想法,所以我通过删除 docker compose v2 (yaml v3) with
来做到这一点rm ~/.docker/cli-plugins/docker-compose
并使用
从存储库安装 docker-composev1.25.0
apt install docker-compose -y
当 运行 容器时,现在将遵守限制。