Docker 和 NVIDIA Docker(nvidia-docker)可以同时存在于同一系统中,并且通常是这样配置的。
NVIDIA Docker 是在标准 Docker 的基础上添加的一个扩展,使得 Docker 容器可以访问 NVIDIA GPU。
检查 NVIDIA Docker 组件是否已安装
- 可以使用以下命令来检查 nvidia-container-toolkit 或 nvidia-docker2 是否已安装:
- 对于Ubuntu,使用:
dpkg -l | grep nvidia-docker
或者:
dpkg -l | grep nvidia-container-toolkit
下面是一些关于这两者关系和安装方式的详细解释:
NVIDIA Docker 是什么?
- NVIDIA Docker(特别是 nvidia-docker2 或 NVIDIA Container Toolkit)不是替代 Docker 的独立应用,而是一套工具和插件,使得 Docker 容器能够以支持 CUDA 和其他 NVIDIA 库的方式,安全地访问宿主机上的 NVIDIA GPU。这是通过特殊的 runtime,即 nvidia-container-runtime 实现的。
安装 NVIDIA Docker
-
在已有 Docker 的系统上安装 NVIDIA Docker 实际上就是在安装一个额外的组件,而不是替换或移除现有的 Docker 安装。以下是安装步骤的概览:
-
1.确认 Docker 已安装:
-
确保 Docker 已经安装并运行在你的系统上。可以通过运行 docker version 来检查。
-
2.安装 NVIDIA Container Toolkit:
-
安装 NVIDIA Container Toolkit,以便 Docker 可以使用 NVIDIA GPU。安装命令取决于你的操作系统,一般需要添加 NVIDIA 的仓库并安装 nvidia-docker2 包:
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
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
总结
- Docker 和 NVIDIA Docker 是可以并且通常会一起安装在同一个系统上的。NVIDIA Docker 依赖于普通的 Docker 服务,并扩展其功能,使其能够管理 GPU 资源。
- 独立安装:没有必要单独安装 NVIDIA Docker,因为它是作为 Docker 的一个扩展而存在的。你只需要在已安装 Docker 的基础上添加 NVIDIA Docker 组件。