【记录】windows下安装docker,并下载 pytorch镜像,在 docker 中使用 GPU
给刚才新添加的两行 deb 添加 [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg],问题似乎是因为官方使用 ubuntu18.04 作为基础仓库,所以安装文档中提供的源列表的 URL 是不对的;,所以选择 pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-runtime,其中,li
一、在 win11 中安装 WSL2
见博客:
【记录】windows系统安装WSL2+Ubuntu20.04在D盘
其中,linux 发行版不一定安装 ubuntu20.04,可根据实际需要/习惯安装其他版本。
二、在 win11 中安装 Docker
参考教程:
Windows 环境下安装 Docker 的详细教程(超详细图文)
⚠️友情提醒:
- 该教程直接用 docker 自动安装,默认是在 C 盘的!
搜索将 Docker Desktop 安装到 D 盘的方法,但根据教程博客的评论区,同样也会存在其他问题。
由于笔者是小白且 C 盘空间足够,担心会在后续使用中遇到其他问题,因此最终还是安装在 C 盘。
如有需要,请先自行找教程将 Docker Desktop 安装到 D 盘,再按照上述教程操作。 - 在 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}
五、补充
- 如果使用的是 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 问题解决。

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



所有评论(0)