docker 启动 GPU
时间: 2025-01-10 08:48:29 浏览: 65
### 如何启动支持 GPU 的 Docker 容器
为了成功启动带有 GPU 支持的 Docker 容器,需先确认已正确配置好环境并安装必要的驱动程序和服务。具体操作如下:
确保已经按照官方指导完成 NVIDIA 驱动以及 Docker 版本更新至最新状态[^4]。
拉取含有 CUDA 和 cuDNN 开发工具包的基础镜像作为构建起点:
```bash
docker pull nvidia/cuda:11.0.3-cudnn8-devel-ubuntu18.04
```
创建一个新的容器实例时指定 `--gpus` 参数来启用GPU功能。此参数允许用户定义要分配给容器的具体 GPU 设备数量或ID列表;也可以通过设置为 all 来授予访问所有可用设备的权利[^3]:
```bash
docker run --gpus=all -it --rm nvidia/cuda:11.0.3-cudnn8-devel-ubuntu18.04 /bin/bash
```
如果遇到初始化 NVML 错误,则可能是由于内核模块加载失败引起的问题。此时应检查系统日志文件 `/var/log/syslog` 或者 `/var/log/messages` 寻找更多线索,并依据错误提示调整相应的内核参数配置[^2]。
当一切准备就绪之后,在 OpenFaaS 框架下部署依赖于 GPU 运算的服务也变得简单许多。只需参照之前整理好的基于 CentOS 7 的 Python Flask 应用模板即可快速搭建起所需的应用场景[^1]。
相关问题
docker调用gpu启动ollama
### 配置 Docker 使用 GPU 启动 Ollama
#### 安装 NVIDIA 容器工具
为了使 Docker 能够访问并使用 GPU,需先安装 NVIDIA 容器工具包。这一步骤确保了 Docker 可以识别和管理主机上的 GPU 设备[^1]。
```bash
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
```
#### 修改 Docker Compose 文件支持 GPU
创建或编辑 `docker-compose.yml` 文件,在服务定义中加入对 GPU 的支持:
```yaml
version: '3'
services:
ollama:
image: ollama/ollama
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
volumes:
- /opt/1panel/apps/ollama:/root/.ollama
ports:
- "11434:11434"
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
```
此文件指定了使用 Nvidia 运行时,并预留所有可用的 GPU 资源给容器使用[^2]。
#### 执行带有 GPU 支持的 Docker 命令
如果不想通过 Docker Compose 来部署,则可以直接执行如下命令来启动带 GPU 加速的服务实例:
```bash
docker run --gpus all \
-d \
-v /opt/1panel/apps/ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama
```
这条命令设置了 `-v` 参数用于挂载数据卷,使得容器内的应用可以读写指定目录下的文件;而 `--gpus all` 则表示让该容器能够访问所有的物理 GPU 卡[^3]。
#### 验证 GPU 是否正常工作
最后可以通过运行测试镜像来确认 GPU 已经被正确配置并且可以在容器内部正常使用:
```bash
docker run --rm --gpus all nvidia/cuda:12.0.1-runtime-ubuntu22.04 nvidia-smi
```
上述命令会临时拉取一个 CUDA 测试环境并打印当前系统的 GPU 状态信息表,以此证明 GPU 功能已经成功集成到 Docker 中[^4]。
docker挂载gpu
### 如何在Docker容器中配置和使用GPU支持
#### 安装NVIDIA驱动程序和支持工具
为了使Docker能够访问主机上的GPU资源,在宿主机上安装合适的NVIDIA驱动程序是必要的。这一步骤通常由操作系统发行版提供指导完成。
#### 安装`nvidia-docker`
对于希望利用GPU加速的应用来说,`nvidia-docker`是一个重要的组件,它作为Docker的一个插件来实现在Docker容器内对NVIDIA GPU的支持[^1]。通过这个插件可以简化创建具有GPU功能的环境的过程。
#### 配置Docker以识别GPU设备
为了让Docker服务知晓并管理GPU硬件,需确保已正确设置了`nvidia-container-runtime`。可以通过执行命令`sudo apt-get install nvidia-container-runtime`来进行安装,并随后重启Docker守护进程(`systemctl restart docker`)以便应用更改[^3]。
#### 启动带有GPU支持的容器实例
一旦上述准备工作就绪,则可通过指定特定标志位的方式启动新的容器会话从而让其获得GPU权限。例如:
```bash
docker run --gpus all ubuntu:20.04 nvidia-smi
```
这条指令将会拉取Ubuntu 20.04镜像并运行一个新容器,在其中调用`nvidia-smi`命令查询当前可用的GPU状态。这里的`--gpus all`参数指示Docker分配所有的物理GPU给该容器;也可以根据需求调整此选项仅限于部分GPU或具体编号的GPU。
#### 解决可能遇到的问题
如果尝试按照以上步骤操作却遇到了困难,比如无法成功建立与GPU之间的通信链接等问题,那么可能是由于某些依赖项缺失或者是版本兼容性方面的原因所造成的。此时应该仔细检查错误日志信息以及确认各个软件包是否处于最新稳定版本之中[^2]。
阅读全文
相关推荐
















