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

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

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

      【保姆級教程】windows 安裝 docker 全流程

      一、背景

      許多小伙伴在安裝 Dify 或是 RagFlow 這些工具的時候,往往會遇到一個難題,那就是 Docker 的安裝。

      首先,我們的PC安裝的絕大部分是 Windows,但眾所周知的原因,Windows 對 Docker 的支持并不是特別好,這方面的歷史原因有很多,實際上 Docker 是 Linux 流派的技術,它主要得益于 Linux Namespace 和 CGroups 這些內核隔離技術,然而 Docker 大火之際,Windows 并沒有提供類似的技術,這也導致了 Windows 在容器領域一直處于滯后的地位。

      后來的演進過程中,Windows 為了跟進這項技術,也做了一些演進。目前市場上流行的 個人PC 操作系統,主要還是以 Windows 10 和 Windows 11為主。而這兩個版本對 Docker 的支持是略有不同的,這也導致了許多小伙伴在安裝 Docker 時會出現不少問題。

      在通過 Windows 安裝 Docker 之前,我們有必要花點時間了解下 WSL 和 HyperV 這兩項技術。

      HyperV

      HyperV 是微軟最早提供的虛擬化技術,得益于現代 CPU 硬件層虛擬化的發展,如Intel的 VT - x 和 AMD 的AMD - V,操作系統可以通過硬件層擴展接口來完成虛擬化。HyperV 主要通過對CPU、內存、網絡、硬件外設等模塊進行技術抽象來完成虛擬化管理和調度,并提供了 VMM 來支持虛擬機的生命周期管理。

      需要注意的是 HyperV 是2008年發布的技術(對標的是 VMware ESX、開源的XEN/KVM等虛擬化技術),而 Docker 是 2013 年開始出現的,也就是說 HyperV 是后來支持的 Docker,最早在 Windows 10 版本上出現了支持 容器的 HyperV 組件,然而也僅限于專業版/企業版/教育版,如果是 Windows 10 個人家庭版本,需要單獨安裝 HyperV。

      WSL

      WSL 是 windows subsystem for linux 的簡稱,意思是Windows 上用于運行 Linux 的子系統。然而 WSL 歷史上存在兩個版本,這點同樣也造成了大家的困擾。

      1. WSL1 發布于 2016 年 8 月,隨 Windows 10-1607 版本發布,它是一種基于 Windows NT 內核實現的組件,支持在用戶模式下運行 Linux 二進制文件,原理是將 Linux 系統調用轉換為 Windows 系統調用。簡單說,由于 WSL1 僅僅是做了一層系統調用的轉換,它并沒有真正的 Linux 內核,所以對 Docker 的支持不是太好。
      2. WSL2 于 2019 年 5 月,隨 Windows 10-1903(高階版本)發布。WSL2 相比 WSL1 帶來了一個革命性的變化,那就是 WSL2 利用了 HyperV 的虛擬化功能來提供完整的 Linux 內核支持,而 WSL2 相比 HyperV 提供了更簡單、簡潔的操作接口。

      不難發現,想要在 Windows 上完美運行 Docker,我們需要 WSL2 + HyperV 這兩個底層技術,并至少確保操作系統在 Windows 10-1903 版本或以上。

      二、環境準備

      首先,我們需要明確 Windows 安裝 Docker 的一些先決條件:

      1. 確保 Window 版本在 10/11 以上
      2. 確保系統啟用了 虛擬化支持
      3. 確保系統支持 HyperV 組件
      4. 確保系統安裝了 WSL2 最新版本
      5. 確保虛擬化所需的 Windows 功能服務已經開啟

      1. 查詢 Windows 版本

      打開 設置 -> 系統 -> 系統信息 -> Windows 規格

      查看 Window 版本,如下:

      2. 檢查虛擬化支持

      打開 任務管理器 -> 性能 -> CPU,查看虛擬化是否開啟:

      如果虛擬化未開啟支持,需要重啟電腦,打開BIOS/UEFI 設置,啟用硬件虛擬化技術。

      3. HyperV 組件支持

      在程序中搜索 Hyper-V 管理器或控制臺,檢查是否已經安裝了 HyperV組件。

      此外還可以通過命令行進行檢查:

      systeminfo | findstr /C:"Hyper-V"
      Hyper-V 要求:     已檢測到虛擬機監控程序。將不顯示 Hyper-V 所需的功能。
      

      一般的 Windows 個人家庭版默認不帶 HyperV,如果發現 HyperV組件未安裝,可通過腳本進行安裝。

      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
      

      將以上腳本保存為 hyperv.cmd 文件,雙擊運行可完成安裝。

      腳本執行完成后,重新檢查以確認 HyperV 安裝完成。

      4. 安裝 WSL2 最新版本

      訪問如下地址獲取安裝包進行安裝:

      https://github.com/microsoft/WSL/releases

      另一種辦法,也可以通過 Microsoft Store進行下載安裝。

      安裝完成之后,設置版本并檢查狀態:

      > wsl --set-default-version 2
      > wsl -v
      WSL 版本: 2.5.4.0
      內核版本: 6.6.75.1-1
      WSLg 版本: 1.0.66
      MSRDC 版本: 1.2.6074
      Direct3D 版本: 1.611.1-81528511
      DXCore 版本: 10.0.26100.1-240331-1435.ge-release
      Windows: 10.0.22631.5039
      
      4.1. 配置 WSL2

      編輯 %USER_HOME%/.wslconfig文件:

      對于 Windows 10 版本,采用如下配置:

      [wsl2]
      networkingMode=nat
      
      [experimental]
      autoMemoryReclaim=dropcache
      

      對于 Windows 11 版本,采用如下配置

      [wsl2]
      networkingMode=mirrored
      dnsTunneling=true
      autoProxy=true
      firewall=true
      
      [experimental]
      autoMemoryReclaim=dropcache
      useWindowsDnsCache=true
      bestEffortDnsParsing=true
      hostAddressLoopback=true
      

      保存 .wslconfig 文件,重啟wsl服務:

       wsl --shutdown 
       wsl
      
      4.2. 參數差異

      在 Windows 11 版本中,WSL 可支持鏡像網絡模式,并帶來了一系列的性能提升配置。

      具體的參數差異如下表所示:

      參數示例 說明 版本要求
      networkingMode=mirrored 網絡模式,mirrored為鏡像模式,nat 為代理模式。

      mirrored 模式下 WSL實例與主機系統共享網絡接口,nat 則無法共享。
      鏡像模式要求 windows 11
      dnsTunneling=true 是否啟用啟用DNS隧道功能,以便WSL實例通過主機操作系統的網絡接口解析DNS請求 windows 11
      autoProxy=true 啟用自動代理功能,WSL實例能夠自動同步主機的網絡代理設置 windows 11
      firewall=true 啟用WSL的防火墻支持,允許HyperV對WSL網絡流量進行控制 windows 11
      autoMemoryReclaim=dropcache 開啟內存自動回收功能,當內存緊張時,WSL實例會釋放緩存 windows 10/11
      useWindowsDnsCache=true 允許WSL使用主機Windows系統的DNS緩存 windows 10/11
      bestEffortDnsParsing=true 啟用“盡力而為”DNS解析功能,當DNS請求失敗時,系統會嘗試通過其他方法解析以提供更穩定的網絡體驗。 windows 11
      hostAddressLoopback=true 除了環回地址之外,允許 WSL 2 子系統使用分配給主機的IP 與主機進行互訪(通常使用不同網口) 鏡像模式要求windows 11

      5. 開啟虛擬化服務功能

      打開控制面板 -> 程序 -> 啟用或關閉系統功能,

      將如下系統功能打開:

      • 虛擬機平臺
      • HyperV
      • 適用于WIndows的Linux子系統

      啟用后根據提示重啟系統后生效。

      三、安裝 Linux 發行版

      WSL 2 利用了 Hyper - V 的虛擬化功能來提供更高效的 Linux 環境。

      而為了讓 Docker 在 WSL 2 上運行,需要安裝一個支持 Docker 的Linux 發行版,如Ubuntu或Debian等,使得Docker 能找到所需的Linux 的內核功能和服務。

      方式一:命令行安裝方式

      查看可用系統版本:

      wsl --list --online
      
      NAME                            FRIENDLY NAME
      Ubuntu                          Ubuntu
      Debian                          Debian GNU/Linux
      kali-linux                      Kali Linux Rolling
      Ubuntu-18.04                    Ubuntu 18.04 LTS
      Ubuntu-20.04                    Ubuntu 20.04 LTS
      Ubuntu-22.04                    Ubuntu 22.04 LTS
      Ubuntu-24.04                    Ubuntu 24.04 LTS
      OracleLinux_7_9                 Oracle Linux 7.9
      OracleLinux_8_7                 Oracle Linux 8.7
      OracleLinux_9_1                 Oracle Linux 9.1
      openSUSE-Leap-15.6              openSUSE Leap 15.6
      SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
      SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
      openSUSE-Tumbleweed             openSUSE Tumbleweed
      

      安裝 ubuntu

      wsl --install ubuntu
      

      方式二:應用市場安裝

      打開 MicroSoft Store,搜索 Ubuntu,點擊進行安裝:

      方式三:離線安裝

      如果在線安裝失敗,可進行離線安裝,參考文檔:

      https://learn.microsoft.com/en-us/windows/wsl/install-manual

      通過以上鏈接下載對應的 Linux 發行版,如 Ubuntu2204-221101。

      下載完畢后,打開PowerShell進入離線包所在目錄,執行命令:

      Add-AppxPackage .\Ubuntu2204-221101.AppxBundle
      

      隨后會生成 xxx.AppxBundle文件,雙擊該文件進行安裝。

      配置軟件鏡像

      執行如下命令進入 Ubuntu 系統:

      wsl -d Ubuntu
      

      基于當前的網絡配置方式,可根據需要配置網絡代理

      編輯 ~/.bashrc 命令,添加如下內容:

      export http_proxy=http://xxx
      export https_proxy=http://xxx
      

      編輯 /etc/apt/sources.list ,添加國內鏡像站,如阿里云鏡像:

      https://developer.aliyun.com/mirror/

      更新鏡像站:

      sudo apt update
      

      三、安裝 Docker

      Windows 上安裝 DockerDesktop 來實現 Docker 的安裝和管理。

      1. 安裝DockerDesktop

      訪問 Docker 官網,下載 Docker-Desktop:

      https://docs.docker.com/desktop/setup/install/windows-install/

      雙機運行,直接安裝,注意勾選 Use WSL Instead Of HyperV。

      2. 配置Docker鏡像源

      安裝完成之后,啟動 DockerDesktop。

      如果啟動成功,可以看到啟動界面。

      選擇 設定 -> Docker Engine:

      編輯 yaml ,在其中添加鏡像源地址,添加如下內容

      {
          ...
          "registry-mirrors": [
              "https://xxx.com"
          ]
      }
      

      其中將地址替換為可用源,以如華為云鏡像為例:

      訪問華為云容器鏡像服務:https://console.huaweicloud.com/swr/,可獲得自有鏡像源地址。

      四、安裝容器

      以 Neo4j 為例,進行容器的安裝測試。

      輸入如下命令,拉取 Neo4j 鏡像:

      docker pull neo4j
      

      打開 Docker Desktop 界面,找到 Neo4j 鏡像,點擊Run,配置參數:

      設置端口,掛載目錄,設置 NEO4J_AUTH=neo4j/password 環境變量。

      執行 Run 動作后,可以看到 Neo4j 已經啟動。

      訪問 http://localhost:7474 ,可以訪問 Neo4j 的界面:

      五、網絡訪問

      NAT 網絡模式

      在 NAT 網絡模式,WSL 2 借助 Hyper - V 虛擬交換機創建一個虛擬網絡環境,它有自己獨立的虛擬網卡(在 Windows 主機上顯示為 vEthernet (WSL),在 WSL 2 內部通常為 eth0),通過該橋接網絡,WSL2 子系統可訪問外部網絡,同時 Windows 主機也可以訪問 WSL 2 實例暴露的端口,但該端口對外部主機不可見(需單獨配置轉發)

      可以執行 ipconfig 命令,查看 WSL 實例的網絡接口:

      ipconfig
      以太網適配器 vEthernet (WSL):
      
         連接特定的 DNS 后綴 . . . . . . . :
         IPv4 地址 . . . . . . . . . . . . : xxx
         子網掩碼  . . . . . . . . . . . . : 255.255.240.0
         默認網關. . . . . . . . . . . . . :
      
      1. 容器可以通過 host.docker.internal 特殊域名訪問宿主機
      2. 宿主機可以通過 環回地址 訪問容器端口
      3. 容器可以通過 WSL 的 IP 地址訪問宿主機

      Mirrored 網絡模式

      在鏡像網絡模式中,WSL2 子系統與主機共享網絡接口,此時不需要 獨立的 WSL 網卡。

      1. 容器可以通過 host.docker.internal 特殊域名訪問宿主機
      2. 宿主機可以通過 環回地址 訪問容器端口
      3. 容器和宿主機可以通過主機的 IP 地址進行互訪(需檢測分別WSL和主機分別綁定的IP)

      關于網絡訪問更多信息,可參考官網說明:
      https://learn.microsoft.com/zh-cn/windows/wsl/networking

      六、常見問題

      端口綁定失敗

      對于windows 10來說,wsl2 盡管配置了鏡像模式,也會自動降級為 NAT 模式。

      如果發現端口沒有被主機占用,但啟動提示沒有綁定端口權限,需要注意端口是否在 HyperV 的保留端口范圍之內。

      由于 HyperV 的保留端口是動態生成的,需通過如下命令檢查 HyperV 保留范圍內:

      netsh interface ipv4 show excludedportrange protocol=tcp
      開始端口    結束端口
      ----------    --------
              80          80
            2698        2797
            2929        3028
            8985        9084
            9085        9184
            9185        9284
            9285        9384
            9385        9484
            9485        9584
            9585        9684
      

      如果存在沖突,最簡單的做法是重啟 NAT,讓它的保留端口發生變化避免沖突

      net stop winnat
      docker start xxx
      net start winnat
      

      另一種徹底的做法是,直接添加動態端口范圍,如下:

      netsh int ipv4 set dynamic tcp start=49152 num=16384
      

      七、參考文檔

      使用 WSL 訪問網絡應用程序
      https://learn.microsoft.com/zh-cn/windows/wsl/networking

      WSL 高級配置
      https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config

      posted @ 2025-04-06 12:23  美碼師  閱讀(26955)  評論(6)    收藏  舉報
      主站蜘蛛池模板: 欧美性受xxxx黑人猛交| 精品九九人人做人人爱| 国产国拍亚洲精品永久软件| 亚洲一区二区精品动漫| 国产999久久高清免费观看| 日韩a∨精品日韩在线观看| 精品国产成人三级在线观看 | 无码人妻一区二区三区在线视频 | 中文www天堂| 三级黄色片一区二区三区| 华安县| 日韩精品一区二区三区四| 精品国产成人国产在线观看| 中文字幕人妻av12| 成人免费A级毛片无码片2022| 久久亚洲精品中文字幕波多野结衣| 国产黄色一区二区三区四区| 风韵丰满熟妇啪啪区老老熟妇| 99精品国产兔费观看久久99| 午夜精品区| 色老99久久九九爱精品| 乱老年女人伦免费视频| 日韩V欧美V中文在线| 亚洲人成网站在线播放2019| 久久影院午夜伦手机不四虎卡| 老熟女熟妇一区二区三区| 国产成人a∨激情视频厨房| 久久亚洲人成网站| 国产欧美一区二区精品久久久| 在线国产精品中文字幕| 免费99视频| 国产亚洲精品成人aa片新蒲金| 国产成人精品亚洲一区二区| 十八岁污网站在线观看| 国产精品揄拍一区二区久久| 97视频精品全国免费观看| 日本高清色WWW在线安全| 久久综合伊人77777| 亚洲欧美另类久久久精品播放的| 精品人妻伦一二二区久久| 国产精品高清中文字幕|