2023-07-23-【记录】win10-通过-docker-调用-nvidia.md 5.7 KB


title: 【记录】win10 通过 docker 调用 nvidia urlname: -ji-lu-win10-tong-guo-docker-diao-yong-nvidia date: 2023-07-23 20:25:19 tags: ['win10', 'docker', 'nvidia', 'jupyter', 'torch']

excerpt: 这段文字主要介绍了如何在Windows系统上安装和配置新版WSL(Windows Subsystem for Linux),以及安装Docker和使用GPU加速等内容。具体步骤包括访问商店获取WSL,安装Docker,关闭Hyper-V,开启虚拟化平台,启用Hyper-V和WSL等。然后介绍了如何安装WSL2、下载Docker Desktop、配置Docker镜像源等。最后还介绍了如何测试网络访问、安装和配置conda环境、启动Jupyter Notebook等操作。

新版WSL

  1. 访问商店获取 Windows Subsystem for Linux
  2. wsl --version 直接跳转到 4. 安装 Docker
  3. 过时教程害人
  4. 如果已经执行了第2、3步,更新后需要再执行 wsl -s docker-desktop 切换回正确的 distro
  5. 关闭 Hyper-V,只开启 WSL 和 虚拟化平台 两个可选功能
  6. netsh winsock reset 然后重启

    开启 Hyper-V by 壹佰

  7. 将下面内容复制到文本文件中,然后将文件命名为Hyper-V.bat,然后以管理员身份运行,运行完成后重启电脑(可能需要BIOS中开启处理器虚拟化支持)。

    pushd "%~dp0"
    dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
    for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
    del hyper-v.txt
    Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
    
  8. 使用 PowerShell 启用 Hyper-V,以管理员身份打开 PowerShell 控制台,运行以下命令:

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    

    安装 WSL2 by Ali7&MS

  9. 应用商店搜索 Ubuntu 22.04.2 LTS 并安装(可以不装)

  10. 开启Windows Subsystem for Linux

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
  11. 开启虚拟机特性

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
  12. 下载并安装 WSL2更新包

  13. 将WSL2设置成默认

    wsl --set-default-version 2
    
  14. 运行商店中安装的 Ubuntu 22.04.2 LTS (可以不装)

    安装 Docker Desktop by 追逐时光者

  15. 下载 Docker Desktop Installer

  16. 换源,在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Desktop。编辑窗口内的JSON串:

    {
    "builder": {
    "features": {
      "buildkit": true
    },
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
    },
    "experimental": false,
    "registry-mirrors": [
    "https://hub-mirror.c.163.com/",
    "https://docker.mirrors.ustc.edu.cn/"
    ]
    }
    
  17. 测试,Powershell 中运行 docker run hello-world

    调用 nvidia by 无人知晓&bpq

  18. Ubuntu 22.04.2 LTS 中 运行 nvidia-smi

  19. 右键卸载 Ubuntu 22.04.2 LTS,wsl -l -v 保证有 docker-desktop 和 docker-desktop-data 就行

  20. Powershell 中运行 docker pull anibali/pytorch:2.0.0-cuda11.8-ubuntu22.04

  21. 启动容器并测试 cuda

    docker run -p 0.0.0.0:8001:8001 --rm -it --name torch --gpus all anibali/pytorch:2.0.0-cuda11.8-ubuntu22.04 /bin/bash
    python
    
    import torch # 如果pytorch安装成功即可导入
    print(torch.cuda.is_available()) # 查看CUDA是否可用
    print(torch.cuda.device_count()) # 查看可用的CUDA数量
    print(torch.version.cuda) # 查看CUDA的版本号
    
  22. 测试网络访问,注意 -p 0.0.0.0

    docker run -p 0.0.0.0:8001:8001 --rm -it --name torch --gpus all anibali/pytorch:2.0.0-cuda11.8-ubuntu22.04 python -m http.server 8001
    

    conda by bpq&LATLAJ

    mkdir data # G:\data
    docker run -p 0.0.0.0:8001:8001 -it --name torch --gpus all -v //g/data:/app/data anibali/pytorch:2.0.0-cuda11.8-ubuntu22.04 /bin/bash
    conda init # 然后退出 bash
    docker start torch
    docker exec -it torch /bin/bash
    conda install nano -c conda-forge
    nano ~/.condarc
    
  23. 更换清华源

    jupyter

    conda create -n jupyter jupyter notebook -c conda-forge
    conda activate jupyter
    jupyter notebook --ip 0.0.0.0 --port 8001
    jupyter notebook --generate-config
    nano ~/.jupyter/jupyter_notebook_config.py
    jupyter notebook # http://localhost:8001/lab?token=limour
    
    c.ServerApp.ip = '*'
    c.ServerApp.port = 8001
    c.ExtensionApp.open_browser = False
    c.ServerApp.token = 'limour'
    

    添加内核

    conda activate base
    conda install ipykernel -c conda-forge
    python -m ipykernel install --user --name pytorch
    

    快速启动:docker exec -it torch /home/user/micromamba/envs/jupyter/bin/jupyter notebook