从头安装与使用一个docker GPU环境

GPU版docker的安装与使用

欢迎使用GPU版docker安装使用说明

使用官方教程安装docker

导入源仓库的GPG key

bash 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将 Docker APT 软件源添加到你的系统

bash 复制代码
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

安装命令如下:

bash 复制代码
 curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

验证安装过程,查看安装的docker 版本,如果返回docker 版本,证明安装成功

bash 复制代码
docker -v

新建一个GPU版docker环境

在 Docker 中寻找专为深度学习和 GPU 计算准备的基础镜像,通常您会使用 Docker Hub,这是 Docker 的官方镜像仓库,包含了大量的社区和官方维护的镜像。对于深度学习和 GPU 计算,有几个关键的镜像资源您可以利用:

官方深度学习框架镜像:比如 PyTorch 和 TensorFlow 的官方镜像通常已经配置了适合深度学习的环境。在 Docker Hub 上搜索 pytorch/pytorch 或 tensorflow/tensorflow。

要查找这些镜像,您可以在 Docker Hub 的搜索栏中输入关键字,比如 "CUDA"、"PyTorch" 或 "TensorFlow"。选择镜像时,请注意镜像的标签,这些标签表示了不同版本的 CUDA 或深度学习框架。

例如,为了找到适合 PyTorch 和 CUDA 的镜像,您可以在 Docker Hub 上搜索 pytorch/pytorch,然后选择一个标签,比如 1.7.1-cuda11.0-cudnn8-runtime,这个标签意味着这个镜像包含了 PyTorch 1.7.1,CUDA 11.0 和 cuDNN 8。

一旦找到合适的镜像,您可以使用 docker pull 命令来下载它,例如:

bash 复制代码
docker pull nvidia/cuda:11.1-base

或

bash 复制代码
docker pull pytorch/pytorch:1.7.1-cuda11.0-cudnn8-runtime

测试 GPU 访问,要测试 Docker 是否可以访问 GPU,您可以运行一个带有 CUDA 支持的测试镜像,例如:

bash 复制代码
docker run --gpus all nvidia/cuda:10.0-base nvidia-smi

docker: Error response from daemon: could not select device driver "" with capabilities: \[gpu].

ERRO0000 error waiting for container: context canceled

表明 Docker 无法识别或使用 GPU。这通常是因为您的系统缺少所需的 NVIDIA 容器运行时或相应的配置不正确。以下是解决这个问题的几个步骤:

1、安装 NVIDIA Docker 插件

如果您正在使用 Docker 19.03 或更早的版本,您需要安装 nvidia-docker2。对于 Docker 19.03 及以后的版本,虽然有了原生的 GPU 支持,但您仍然需要 NVIDIA 容器工具包。

2、添加 NVIDIA 容器库:

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

3、安装 NVIDIA Docker:

bash 复制代码
sudo apt-get update
sudo apt-get install -y nvidia-docker2

4、重启 Docker 服务:

bash 复制代码
sudo systemctl restart docker

5、 验证 NVIDIA Docker 安装

运行以下命令来验证 NVIDIA Docker 是否正确安装:

bash 复制代码
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

出现如下界面表明容器可成功调用本地GPU,之后就是配置容器需要的代码插件。

调用docker环境执行本地python文件

1、定位您的 Python 文件:

确定您要执行的 Python 文件的路径。例如,假设您的文件位于 /path/to/your/script.py。

2、选择或创建 Docker 镜像:

确保您有一个包含所需 Python 版本和依赖库的 Docker 镜像。假设您使用的是 liqiang12689/laconda:v1 镜像。

3、运行 Docker 容器并挂载文件:

使用 Docker 的 -v 参数将本地文件或目录挂载到容器中。以下命令将本地目录 /path/to/your 挂载到容器的 /app 目录,并以交互模式启动容器:

bash 复制代码
docker run -it -v /path/to/your:/app liqiang12689/laconda:v1 /bin/bash

这样,容器内的 /app 目录现在包含您的 Python 文件。

4、在容器内执行 Python 文件:

容器启动后,您将进入其命令行界面。切换到挂载的目录:

bash 复制代码
cd /app

5、然后,使用 Python 运行您的脚本:

bash 复制代码
python script.py  # 或 python3 script.py,取决于您的 Python 版本

这将执行您的本地 Python 脚本 script.py。

6、退出容器:

完成后,您可以通过输入 exit 或按 Ctrl+D 退出容器。

请记住,如果您的 Python 脚本有任何外部依赖或特定的环境需求,您需要确保这些依赖在 Docker 镜像中可用。您可能需要创建一个自定义 Docker 镜像,其中包含您的代码依赖项,或者在运行容器之前手动安装它们。

相关推荐
硅基手札几秒前
【linux内核专栏 08】时间与定时器
linux·运维·服务器
想做小南娘,发现自己是女生喵19 分钟前
Linux之Ubuntu入门篇知识总结
linux·运维·服务器
帷幕落秋1 小时前
Redis哨兵模式
运维·数据库
吴声子夜歌2 小时前
Nginx应用与运维——Nginx编译及部署(部署)
java·运维·nginx
帷幕落秋2 小时前
Redis主从复制
运维·数据库
帷幕落秋2 小时前
Mysql主从复制
运维·数据库
暖核3 小时前
MySQL 高级运维核心:备份恢复、主从复制与 MHA 高可用复习总结
运维·数据库·mysql
jackletter3 小时前
linux:systemd之守护进程
linux·运维·服务器·systemd
Ruiery4 小时前
Linux 6.6内核 CPU 深度解析(五):CPU 空闲状态机 cpuidle
linux·运维·服务器
XS0301064 小时前
Nginx 学习指南
运维·nginx