一、在 win11 中安装 WSL2

见博客:
【记录】windows系统安装WSL2+Ubuntu20.04在D盘

其中,linux 发行版不一定安装 ubuntu20.04,可根据实际需要/习惯安装其他版本。


二、在 win11 中安装 Docker

参考教程:
Windows 环境下安装 Docker 的详细教程(超详细图文)

⚠️友情提醒:

  1. 该教程直接用 docker 自动安装,默认是在 C 盘的!
    搜索将 Docker Desktop 安装到 D 盘的方法,但根据教程博客的评论区,同样也会存在其他问题。
    由于笔者是小白且 C 盘空间足够,担心会在后续使用中遇到其他问题,因此最终还是安装在 C 盘。
    如有需要,请先自行找教程将 Docker Desktop 安装到 D 盘,再按照上述教程操作。
  2. 在 Docker Desktop 界面中可以更改 images 存放位置,见下图

在这里插入图片描述


🪰 docker run hello-world 时遇到问题:
docker: Error response from daemon: authentication required - email must be verified before using account

在这里插入图片描述
这是因为 docker 的账户没有验证邮箱,登录 docker hub 网页
登陆后,最上面会有 “Verify your email” 提示,按照下图操作验证邮箱。

在这里插入图片描述
再执行 docker run hello-world,出现 “Hello from Docker",说明 docker 正确安装并能够使用。

在这里插入图片描述


三、用 docker 下载 pytorch 镜像

首先确定好项目需要的 pytorch 版本和 cuda 版本,然后去 docker hub 上搜索 pytorch,选择需要的版本再拉取官方镜像。

举例:需要复现的某个项目的 requirements 中需要 torch==1.1.0, cudatoolkit==10.0,所以选择 pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-runtime,
用下列命令拉取:

docker pull pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-runtime

四、docker 使用 GPU

step1. 安装 NVIDIA Driver
现在带 gpu 的 windows 电脑一般都已经安装好了,在 cmd 中输入指令 nvidia-smi 查询。

在这里插入图片描述

step2. 安装 CUDA + cuDNN
版本不能超过最高支持的 CUDA 版本

step3. 安装 NVIDIA Container Toolkit
安装教程:Installing the NVIDIA Container Toolkit
这是官方文档,但存在一点问题,跟着下面的的步骤可以成功安装。

① 先决条件

sudo apt-get update && sudo apt-get install -y --no-install-recommends \
   curl \
   gnupg2

② 配置产品仓库

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

(可选)配置仓库以使用实验包

sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

③ 更新包列表

sudo apt-get update

遇到问题:
E: The repository ‘https://nvidia.github.io/libnvidia-container/stable/deb/amd64 Release’ does not have a Release file.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository ‘https://nvidia.github.io/libnvidia-container/experimental/deb/amd64 Release’ does not have a Release file.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

在这里插入图片描述
参考 使用外部软件源时遇到 “No Release file” 错误官方售后,问题似乎是因为官方使用 ubuntu18.04 作为基础仓库,所以安装文档中提供的源列表的 URL 是不对的;
尝试
sudo vi /etc/apt/sources.list.d/nvidia-container-toolkit.list
在文档中添加下列内容

deb https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/$(ARCH) /
deb https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/$(ARCH) /

再次执行,仍然有问题:
W: GPG error: https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64 InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY DDCAE044F796ECB0
E: The repository ‘https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64 InRelease’ is not signed.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/amd64 InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY DDCAE044F796ECB0
E: The repository ‘https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/amd64 InRelease’ is not signed.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

在这里插入图片描述
又找到其他解决方案
再次编辑 sudo vi /etc/apt/sources.list.d/nvidia-container-toolkit.list
给刚才新添加的两行 deb 添加 [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg]

因此文档最终内容如下

deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/deb/$(ARCH) /
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/$(ARCH) /
deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/experimental/ubuntu18.04/$(ARCH) /

④ 安装
NVIDIA Container Toolkit

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.0-1
sudo apt-get install -y \
	nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
	nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
	libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
	libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

五、补充

  1. 如果使用的是 docker desktop,在没有打开 docker desktop 软件的情况下,
    在 cmd 中运行 docker --version 可以正确返回 docker 安装的版本;
    但是运行 docker images 却存在报错:
    error during connect: Head “http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/_ping”: open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
    打开 docker desktop 的 app 问题解决。

在这里插入图片描述

  1. 使用 docker 的教程
    docker 容器打包镜像,并导出镜像,放在服务器中的docker容器中
    本地项目打包成镜像并上传到 docker 仓库
    微软:WSL 2 上的 Docker 远程容器入门
    菜鸟教程:Docker 命令大全
    WSL2 上的 Docker 远程容器入门(这是对微软和 docker 官方文档的翻译)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐