我需要在 Ubuntu 上部署一些 Docker 容器,并限制它们对磁盘 I/O 的使用。我更喜欢使用 Docker compose-up 来实现这一点,但不幸的是,版本 3 的文档仅提到限制 CPU 和内存:
version: '3'
services:
redis:
image: redis:alpine
deploy:
resources:
limits:
cpus: '0.50'
memory: 50M
reservations:
cpus: '0.25'
memory: 20M
在简单地使用 docker run 时,我可以使用选项:--device-write-bps、--device-write-iops、--device-read-bps、--device-read-iops。
答案1
似乎这些选项在 Docker 3.0 中为了与 swarm 兼容而被故意删除。
看https://forums.docker.com/t/blkio-config-does-not-exist-in-v3-0-or-later/94373。
引用用户 meyay 的话:
如果您只有一个节点,那么 docker-compose 和 v2.4 仍然是您的最佳选择,而且比 swarm 强大得多。Swarm 缺乏特权模式、功能、设备和其他“低级”功能。
如果您需要多节点集群容器部署并且仍然需要完全控制所有内容,那么转向 Kubernetes 是不可避免的。