我正在使用docker compose
运行容器:
version: "3.9"
services:
app:
image: nvidia/cuda:11.0.3-base-ubuntu20.04
deploy:
resources:
reservations:
devices:
- capabilities: [ gpu ]
容器可以受益于GPU的存在,但它并不严格需要GPU。使用上述docker-compose.yaml
导致错误
后台进程的错误响应:无法选择设备驱动程序"quot;具有以下功能:[[gpu]]
在没有GPU的机器上使用时。是否可以指定";使用GPU,如果有可用的,否则启动没有GPU的容器";?
@herku,docker compose中没有条件语句。2018年,该功能超出范围https://github.com/docker/compose/issues/5756
不管怎样,你可以通过选择如何解决问题来检查这个答案https://stackoverflow.com/a/50393225/3730077
虽然不是完全自动的,但至少有一个选项可以使用配置文件禁用GPU,这样用户就可以在不干扰docker-compose.yaml
的情况下关闭GPU的使用,而是使用CLI标志。
以下是如何根据CLI参数的存在删除deploy
部分的示例。相关部分是:
services:
...
auto-cpu:
<<: *automatic
profiles: ["auto-cpu"]
deploy: {}
我希望这能有所帮助。