<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      在 Windows 上部署支持 CUDA 的 Docker 容器

      概述

      本指南將幫助你在 Windows 系統上部署一個支持 CUDA 的 Docker 開發容器,該容器基于 Ubuntu 20.04,并預裝了 Python、PyTorch 等開發環境,同時配置了 SSH 服務以便遠程訪問。

      前提條件

      1. Windows 10 或 Windows 11(版本 21H2 或更高)
      2. 已安裝 Docker Desktop for Windows
      3. 支持 CUDA 的 NVIDIA GPU
      4. 已安裝 NVIDIA 顯卡驅動(版本 516.xx 或更高)
      5. 已安裝 WSL 2(Windows Subsystem for Linux 2)

      步驟

      1. 驗證系統準備情況

      首先,確保你的系統滿足以下要求:

      • 確認已啟用 WSL 2:

        wsl --list --verbose
        
      • 確認已安裝 NVIDIA 驅動且支持 CUDA:

        nvidia-smi
        
      • 如果沒有安裝該驅動的可以移步至我的另一篇blog:“在Windows 系統上安裝和配置 NVIDIA 驅動”

      2. 安裝 NVIDIA Container Toolkit

      1. 下載并安裝 NVIDIA Container Toolkit:

      2. 或在 WSL 2 的 Linux 發行版中運行:

        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-container-toolkit
        sudo nvidia-ctk runtime configure --runtime=docker
        sudo systemctl restart docker
        

      3. 配置 Docker Desktop

      1. 打開 Docker Desktop 設置
      2. 前往 "General" 確保已勾選 "Use the WSL 2 based engine"
      3. 前往 "Resources" > "WSL Integration" 啟用你的 WSL 2 發行版
      4. 前往 "Docker Engine" 并確保配置中包含以下內容:
        {
          "runtimes": {
            "nvidia": {
              "path": "nvidia-container-runtime.exe",
              "runtimeArgs": []
            }
          }
        }
        

      4. 創建項目文件

      1. 在你的工作目錄中創建以下文件:

        Dockerfile:

        # 使用官方 CUDA 鏡像作為基礎
        FROM nvidia/cuda:11.8.0-runtime-ubuntu20.04
        
        # 避免安裝過程中交互式提示
        ENV DEBIAN_FRONTEND=noninteractive
        
        # 配置 Ubuntu 使用清華源
        RUN sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && \
            sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
        
        # 安裝系統依賴和開發工具,包括 SSH 服務器
        RUN apt-get update && apt-get install -y \
            curl \
            wget \
            git \
            build-essential \
            openssh-server \
            python3 \
            python3-pip \
            sudo \
            && rm -rf /var/lib/apt/lists/*
        
        # 為 VS Code 創建用戶并設置密碼
        RUN useradd -m -s /bin/bash vscode && \
            echo "vscode:vscode" | chpasswd && \
            usermod -aG sudo vscode && \
            echo "vscode ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
        
        # 配置 SSH
        RUN mkdir /var/run/sshd && \
            sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config && \
            sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config
        
        # 安裝 Python 包
        USER vscode
        WORKDIR /home/vscode
        RUN pip install numpy pandas torch -i https://pypi.tuna.tsinghua.edu.cn/simple
        
        # 暴露 SSH 端口
        EXPOSE 22
        
        # 啟動 SSH 服務
        CMD ["sudo", "/usr/sbin/sshd", "-D"]
        

        docker-compose.yml:

        version: '3.8'
        
        services:
          cuda-dev:
            build:
              context: .
              dockerfile: Dockerfile
            container_name: cuda-dev
            ports:
              - "2222:22"  # 將容器的SSH端口映射到宿主機的2222端口
            runtime: nvidia  # 使用NVIDIA容器運行時以支持GPU
            deploy:
              resources:
                reservations:
                  devices:
                    - driver: nvidia
                      count: all
                      capabilities: [gpu]
            restart: unless-stopped
            volumes:
              - ./workspace:/home/vscode/workspace  # 可選:掛載工作目錄以便持久化代碼
            environment:
              - NVIDIA_VISIBLE_DEVICES=all
        

      5. 構建和運行容器

      1. 打開 PowerShell 或 WSL 終端,導航到項目目錄
      2. 構建 Docker 鏡像:
        docker-compose build
        
      3. 啟動容器:
        docker-compose up -d
        

      6. 測試容器

      1. 驗證容器是否正常運行:

        docker ps
        
      2. 測試 SSH 連接:

        ssh -p 2222 vscode@localhost
        

        密碼是 vscode

      3. 測試 CUDA 是否可用:

        python3 -c "import torch; print(torch.cuda.is_available())"
        

      網絡配置:在 Windows 防火墻中開放 2222 端口

      為了讓宿主機或其他設備能夠通過 SSH 訪問容器,需要配置 Windows 防火墻,允許對 2222 端口的入站連接。以下是兩種方法:

      方法一:通過圖形化界面操作 (Windows Defender 防火墻)

      1. 打開 Windows Defender 防火墻

        • 在開始菜單搜索“高級安全 Windows Defender 防火墻”并打開它。
        • 或者,按 Win + R,輸入 wf.msc 然后回車。
      2. 創建新的入站規則

        • 在左側窗格中,右鍵點擊“入站規則”,然后選擇“新建規則...”。
      3. 規則類型

        • 選擇“端口”,然后點擊“下一步”。
      4. 協議和端口

        • 選擇“TCP”。
        • 選擇“特定本地端口”,并在旁邊的輸入框中輸入 2222
        • 點擊“下一步”。
      5. 操作

        • 選擇“允許連接”,然后點擊“下一步”。
      6. 配置文件

        • 根據您的網絡環境選擇何時應用該規則(通常默認全選“域”、“專用”、“公用”即可),點擊“下一步”。
      7. 名稱

        • 為該規則起一個易于識別的名稱,例如“Docker Container SSH”或“Port 2222 for CUDA Dev”。
        • 可以添加更詳細的描述,如“允許通過 SSH 訪問運行在 Docker 中的開發容器”。
        • 點擊“完成”。

      現在,新的規則會出現在入站規則列表中,表示端口 2222 已對外部開放。

      方法二:通過 PowerShell (管理員權限)

      使用命令行可以快速完成同樣的操作。

      1. 以管理員身份運行 PowerShell

        • 在開始菜單搜索“PowerShell”。
        • 右鍵單擊“Windows PowerShell”,然后選擇“以管理員身份運行”。
      2. 執行命令創建防火墻規則

        • 將以下命令復制到 PowerShell 中執行:
        New-NetFirewallRule -DisplayName "允許 Docker 容器 SSH (TCP 2222)" -Direction Inbound -LocalPort 2222 -Protocol TCP -Action Allow
        
        • 命令參數解釋
          • -DisplayName “...”:規則的名稱,便于識別。
          • -Direction Inbound:規則針對入站流量。
          • -LocalPort 2222:開放的本地端口號。
          • -Protocol TCP:協議類型。
          • -Action Allow:執行允許的操作。
      3. 驗證規則是否添加成功

        • 可以運行以下命令查看所有包含“2222”端口的規則:
        Get-NetFirewallRule | Where-Object { $_.DisplayName -like "*2222*" } | Format-Table DisplayName, Enabled, Direction, Action
        

      注意事項

      • 管理員權限:兩種方法都需要管理員權限。
      • 安全性:開放端口會帶來一定的安全風險。請確保您信任連接到該端口的設備,并且容器內的 SSH 密碼足夠強壯(建議使用密鑰認證以獲得更高安全性)。
      • 即時生效:規則創建后會立即生效,無需重啟電腦或 Docker。

      故障排除

      1. NVIDIA 驅動問題
        [... 后續內容保持不變 ...]

      故障排除

      1. NVIDIA 驅動問題

        • 確保已安裝最新 NVIDIA 驅動
        • 運行 nvidia-smi 確認驅動正常工作
      2. WSL 2 問題

        • 確保 WSL 2 已更新到最新版本
        • 運行 wsl --update 更新 WSL
      3. 端口沖突

        • 如果端口 2222 已被占用,請在 docker-compose.yml 中更改端口映射
      4. 權限問題

        • 如果遇到文件權限問題,嘗試在 Docker Desktop 設置中啟用 "Use the WSL 2 based engine"

      使用建議

      1. 可以使用 VS Code 的 Remote - SSH 擴展連接到容器
      2. 將代碼放在 workspace 目錄中以便持久化存儲
      3. 如需其他 Python 包,可以修改 Dockerfile 中的 pip install 命令

      參考資料

      1. Docker Desktop for Windows 文檔
      2. NVIDIA Container Toolkit 文檔
      3. WSL 2 文檔

      通過以上步驟,你應該能夠在 Windows 上成功部署支持 CUDA 的 Docker 容器。如果遇到任何問題,請參考故障排除部分或查閱相關文檔。

      posted on 2025-09-04 12:02  cmxcxd  閱讀(220)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 久久精品不卡一区二区| 久久久久中文伊人久久久| 美女黄18以下禁止观看| 大陆熟妇丰满多毛xxxⅹ| 国产蜜臀久久av一区二区| 亚洲精品一区二区美女| 福鼎市| 免费视频一区二区三区亚洲激情 | 视频一区二区不中文字幕| 国产精成人品日日拍夜夜| 国产短视频一区二区三区| 在线看国产精品自拍内射| 亚洲人黑人一区二区三区| 国产午夜福利免费入口| 99久久久国产精品免费无卡顿| 影视先锋av资源噜噜| 亚洲精品久综合蜜| 亚洲av第一区二区三区| 50岁熟妇的呻吟声对白| 亚洲欧美自偷自拍视频图片| 无码人妻aⅴ一区二区三区蜜桃| 日本无遮挡吸乳呻吟视频| 欧美精品一区二区三区中文字幕| 人妻无码av中文系列久| 中文字幕 制服 亚洲 另类| 国产成人AV性色在线影院| 精品一区二区中文字幕| 内射一区二区三区四区| 性xxxx视频播放免费| 国产亚洲精品第一综合| 亚洲视频免费一区二区三区| 国产精品亚洲а∨天堂2021 | 亚洲性夜夜天天天| 青青草国产精品日韩欧美| 亚洲高清日韩专区精品| 久久人人妻人人做人人爽| 性色av无码久久一区二区三区| 免费久久人人爽人人爽AV| 美日韩精品一区二区三区| 国产美女被遭强高潮免费一视频| 喀喇沁旗|