Docker Compose无法调用GPU但docker run正常的问题咨询
问题原因与解决方案
核心原因
你在docker run命令里显式使用了--gpus all参数,这个参数会让Docker自动完成GPU相关的设备挂载、环境变量配置以及指定nvidia runtime,但你的Docker Compose配置里缺少对应开启GPU支持的配置项,导致容器无法访问GPU资源。而nvidia/cuda镜像能正常工作,是因为部分旧版本Docker环境中它会默认触发nvidia runtime,但这并非通用逻辑。
解决方案
根据你的Docker Compose版本,添加对应GPU配置:
方案1:Docker Compose v2.10+(推荐)
在服务配置中添加deploy.resources.reservations.devices字段,这是官方推荐的标准配置方式:
services: selenium-node: image: selenium/node-chrome:3.141.59 deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu]
方案2:旧版Docker Compose(v2.10以下)
如果你的Compose版本较低,直接指定runtime: nvidia即可:
services: selenium-node: image: selenium/node-chrome:3.141.59 runtime: nvidia
验证步骤
启动容器后,执行以下命令进入容器测试:
docker-compose exec selenium-node nvidia-smi
若能正常输出GPU信息,说明配置生效。
额外注意事项
- 执行
docker compose version(或docker-compose version)查看版本,建议升级到最新版Docker Compose以获得更完善的GPU支持。 - 区分旧版独立工具
docker-compose与新版Docker CLI集成命令docker compose,新版推荐使用docker compose up启动服务。
内容的提问来源于stack exchange,提问作者Jordan Sim
相关产品推荐
相关产品推荐

