Docker Compose配置GPU访问报错,官方配置无效求解决方案
解决Docker Compose配置GPU访问报错的方案
问题根源
你使用的Compose文件版本(3)过低,且deploy字段下的GPU资源配置仅适用于Swarm集群模式,单机docker-compose up场景不支持该配置结构,因此触发报错。
具体解决办法
办法一:升级Compose文件版本并适配单机模式配置
修改docker-compose.yml,将版本升级到3.8及以上,并调整GPU配置的位置:
version: "3.8" services: app: build: context: . dockerfile: Dockerfile ports: - "5000:5000" # 单机模式下的GPU配置,效果等同于--gpus all deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu]
也可以用更简洁的单机模式写法(无需deploy字段):
version: "3.8" services: app: build: context: . dockerfile: Dockerfile ports: - "5000:5000" runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=all
办法二:验证Docker及Compose版本兼容性
确保你的环境满足以下最低版本要求:
- Docker Engine ≥ 19.03(需提前安装nvidia-docker2插件)
- Docker Compose ≥ 1.28.0
用以下命令验证版本:
docker --version docker-compose --version
若版本过低,直接升级到最新稳定版即可。
办法三:Swarm集群模式下的适配(如果是集群部署)
如果是在Swarm集群中部署,需额外满足:
- 所有Swarm节点都安装了nvidia-docker2
- 使用
docker stack deploy命令部署,而非docker-compose up - Compose文件版本保持3.8及以上
内容的提问来源于stack exchange,提问作者Los
相关产品推荐
相关产品推荐

