docker compose:如果可用,请使用GPU,否则启动没有GPU的容器



我正在使用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: {}

我希望这能有所帮助。

最新更新