mxb*_*xbi 5 docker docker-compose nvidia-docker
我有一个 docker-compose 文件,如下所示:
version: "3.9"
services:
api:
build: .
ports:
- "5000"
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
count: 1
Run Code Online (Sandbox Code Playgroud)
当我运行时docker-compose up,它会按预期运行,使用计算机上的第一个 GPU。
但是,如果我运行docker-compose up --scale api=2,我希望每个 docker 容器在主机上保留一个 GPU。
实际行为是两个容器接收相同的 GPU ,这意味着它们会竞争资源。此外,如果我在 中指定了两个容器,并且都带有. 如果我为每个容器手动指定 device_ids ,它就可以工作。docker-compose.ymlcount: 1
如何才能让每个 docker 容器保留对 1 个 GPU 的独占访问权?这是一个错误还是有意的行为?
docker-compose请求扩展时的行为是根据服务提供的确切规范创建其他容器。
在创建附加容器的过程中,很少有规格参数会发生变化,并且这些参数devices是参数集的一部分host_config,无需修改即可复制。
docker-compose是Python项目,所以如果这对你来说很重要,你可以尝试实现它。驱动服务生命周期(创建、扩展等)的逻辑驻留在compose/services.py.
| 归档时间: |
|
| 查看次数: |
923 次 |
| 最近记录: |