使用 compose 限制 Docker 容器的磁盘 I/O 使用情况

使用 compose 限制 Docker 容器的磁盘 I/O 使用情况

我需要在 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 是不可避免的。

相关内容