【发布时间】:2021-03-11 21:13:25
【问题描述】:
我有一个 docker-compose 文件,如下所示:
version: "3.9"
services:
api:
build: .
ports:
- "5000"
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
count: 1
当我运行 docker-compose up 时,它会按预期运行,使用机器上的第一个 GPU。
但是,如果我运行 docker-compose up --scale api=2,我会期望每个 docker 容器在主机上保留一个 GPU。
实际行为是两个容器接收相同的 GPU,这意味着它们竞争资源。此外,如果我在docker-compose.yml 中指定了两个容器,并且都使用count: 1,我也会得到这种行为。如果我为每个容器手动指定 device_ids,它就可以工作。
如何让每个 docker 容器保留对 1 个 GPU 的独占访问权限?这是错误还是预期行为?
【问题讨论】:
标签: docker docker-compose nvidia-docker