nvidia-docker2
Docker 如何支持 GPU
Docker 是一个强大的工具,可以帮助开发者构建、部署和运行应用程序。对于需要高性能计算的应用程序,例如机器学习、深度学习和科学计算,利用 GPU 可以大大提升计算效率。本文将详细介绍 Docker 如何支持 GPU 以及如何配置 GPU 支持。
系统要求
在开始之前,请确保您的系统满足以下要求:
- 支持 NVIDIA GPU 并安装了 NVIDIA 驱动程序。
- 安装了 Docker 19.03 或更新版本。
- 安装了 NVIDIA Container Toolkit。
步骤 1:安装 NVIDIA 驱动程序
首先,确保系统上安装了适用于您的 GPU 的 NVIDIA 驱动程序。您可以从 NVIDIA 官方网站 下载适用于您的操作系统和 GPU 的驱动程序。
您可以通过以下命令检查 NVIDIA 驱动程序是否正确安装:
nvidia-smi
该命令将显示有关 GPU 的信息,包括驱动程序版本和 GPU 使用情况。
步骤 2:安装 Docker
如果尚未安装 Docker,请按照以下步骤进行安装。
对于 Ubuntu:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
对于 CentOS:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl start docker
步骤 3:安装 NVIDIA Container Toolkit
安装 NVIDIA Container Toolkit 以使 Docker 能够使用 GPU。
- 设置包存储库并安装 NVIDIA Container Toolkit:
对于 Ubuntu:
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-docker2
sudo systemctl restart docker
对于 CentOS:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo rpm --import -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-docker2
sudo systemctl restart docker
- 验证安装:
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
该命令将运行一个包含 NVIDIA 驱动程序的 Docker 容器,并显示有关 GPU 的信息。
步骤 4:配置 Docker 使用 GPU
使用 GPU 运行 Docker 容器时,您需要在 docker run
命令中添加 --gpus
选项。
示例命令:
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
这个命令将拉取 nvidia/cuda:11.0-base
镜像,并在容器中运行 nvidia-smi
命令,显示 GPU 的使用情况。
您还可以指定使用特定数量的 GPU。例如,要使用 2 个 GPU:
sudo docker run --rm --gpus 2 nvidia/cuda:11.0-base nvidia-smi
使用 Docker Compose 配置 GPU 支持
如果您使用 Docker Compose 来管理容器,可以在 docker-compose.yml
文件中配置 GPU 支持。
示例 docker-compose.yml
文件:
version: '3.8'
services:
gpu-service:
image: nvidia/cuda:11.0-base
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
command: nvidia-smi
使用以下命令启动服务:
sudo docker-compose up
总结
通过以上步骤,我们在 Linux 系统上成功配置了 Docker 支持 GPU。利用 GPU 加速,您可以显著提升高性能计算任务的效率。无论是单个容器还是通过 Docker Compose 管理的多容器环境,Docker 的 GPU 支持都使得高性能计算变得更加便捷和高效。
希望这篇博客对您在 Linux 上配置 Docker GPU 支持有所帮助!如果在配置过程中遇到任何问题,可以参考 Docker 官方文档 或社区论坛寻求帮助。