docker compose gpu
时间: 2025-01-01 10:34:16 浏览: 6
### 配置和使用Docker Compose中的GPU支持
为了使Docker容器能够利用宿主机的GPU资源,在配置Docker Compose文件时需遵循特定设置。在此之前,确认已安装必要的组件如NVIDIA驱动程序及`nvidia-container-toolkit`[^2]。
#### 修改docker-compose.yml以启用GPU支持
在定义服务的部分加入`deploy.resources.reservations.devices`字段来指定要分配给该服务的具体设备类型及其属性:
```yaml
version: '3.8'
services:
my_service_with_gpu:
image: nvidia/cuda:11.0-base
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
```
此段落描述了如何向Docker Compose项目添加对于GPU的支持。上述YAML片段展示了怎样声明一个依赖于GPU的服务实例;这里选择了基于CUDA 11.0的基础镜像作为例子。
#### 使用环境变量简化部署流程
除了直接编辑compose文件外,还可以借助环境变量的方式动态调整是否开启GPU功能。这可以通过设置`COMPOSE_FILE`指向不同的组合文件实现,其中某些版本可能包含了针对有无GPU的不同设定。
例如创建两个独立的`.yml`文件——一个是标准版(`docker-compose.yml`)另一个则是增强型(`docker-compose.override-gpu.yml`)用于覆盖默认行为并引入GPU特性:
```bash
export COMPOSE_FILE=docker-compose.yml:docker-compose.override-gpu.yml
```
这样做不仅提高了灵活性也便于管理多套不同需求下的配置方案。
#### 测试与验证
完成以上步骤之后启动应用程序并通过执行简单的测试案例确保一切正常工作。比如可以在目标容器内部运行一段Python脚本调用PyTorch库检测可用硬件加速情况:
```python
import torch
print(f"CUDA Available: {torch.cuda.is_available()}")
if torch.cuda.device_count():
print('Available GPUs:')
for i in range(torch.cuda.device_count()):
print(f"- Device #{i}: {torch.cuda.get_device_name(i)}")
else:
print("No GPU detected.")
```
这段代码会打印出当前环境中是否存在有效的CUDA连接以及列举所有可识别到的图形处理单元名称列表[^3]。
阅读全文