Docker Compose 3版本不识别runtime选项报错求助
问题原因及解决方案
原因分析
- 你使用的docker-compose 1.25.0属于较旧版本,它对Compose File Version 3的规范支持有限,
runtime: nvidia选项在Version 3的文件结构中不被该版本的docker-compose认可。 - 虽然你的Docker引擎版本20.10.21已经支持
--gpus参数(这也是直接用docker run能成功的原因),但旧版docker-compose尚未适配这种新的GPU调用方式,仍依赖Version 2.x文件中的runtime选项来启用NVIDIA runtime。
解决方案
方案1:修改Compose文件版本为2.x
将Compose文件开头的version: '3'改为version: '2.4',保持原有runtime: nvidia配置不变,修改后的文件示例:
version: '2.4' services: minkowski: build: context: . dockerfile: DockerfileGPU volumes: - "../:/app:rw" - "${DATA_PATH}:/app/data:rw" working_dir: /app tty: true stdin_open: true network_mode: "host" runtime: nvidia
方案2:升级docker-compose到新版本
升级到docker-compose 2.0及以上版本(建议使用与Docker引擎版本匹配的最新稳定版),之后可以选择两种方式配置GPU:
方式A:兼容写法(保留runtime: nvidia)
仍保持Version 3文件结构,runtime: nvidia可以正常被新版本docker-compose识别。
方式B:现代规范写法(使用devices配置)
替换runtime: nvidia为以下配置,更贴合Docker新的资源管理规范:
services: minkowski: # ... 其他原有配置 ... deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu]
内容的提问来源于stack exchange,提问作者Jacek Karolczak
相关产品推荐
相关产品推荐

