Windows10或11 安装 WSL2、Ubuntu 和 Docker

1. 启用 WSL2 和虚拟机平台

  1. 以管理员身份打开 PowerShell

    • 右键点击“开始”菜单,选择“Windows PowerShell (管理员)”。
  2. 启用 WSL 功能

    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
  3. 启用虚拟机平台功能

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
  4. 重启计算机

    • 重启以应用更改。

2. 安装 WSL2 内核更新

  1. 下载并安装 WSL2 内核更新

  2. 设置 WSL2 为默认版本

    • 打开 PowerShell 并运行以下命令:

      wsl --set-default-version 2
      

3. 安装 Ubuntu

  1. 从 Microsoft Store 安装 Ubuntu

    • 打开 Microsoft Store,搜索“Ubuntu”并选择最新版本进行安装。
  2. 启动 Ubuntu 并完成初始化

    • 安装完成后,启动 Ubuntu,设置用户名和密码。

4. 安装 Docker(弃用 Docker Desktop)

  1. 在 Ubuntu 中安装 Docker

    • 打开 Ubuntu 终端,运行以下命令:

      # 在 ubuntu 执行
      sudo apt-get update # 更新内核
      sudo apt-get install ca-certificates curl gnupg #安装依赖
      
      #导入 Docker 官方 GPG 密钥
      sudo install -m 0755 -d /etc/apt/keyrings
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
      
      #添加 Docker 官方仓库
      echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
      
      #更新内核
      sudo apt-get update
      
      #安装 Docker
      sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
      
      #验证
      docker -v
      
      
  2. 启动 Docker 服务

    sudo service docker start
    
  3. 将当前用户加入 Docker 组(避免每次使用 sudo):

    sudo usermod -aG docker $USER
    
  4. 验证 Docker 安装

    docker --version
    

5. 配置 Docker 使用 WSL2 后端

  1. 创建或编辑 Docker 配置文件

    • 在 Ubuntu 中,编辑或创建 /etc/docker/daemon.json 文件:

      sudo nano /etc/docker/daemon.json
      
  2. 添加以下内容

    #这些地址未必能使用 ,请自行搜索国内可用的镜像地址
    {
            "registry-mirrors": [
                    "https://<your_mirror_url>.mirror.aliyuncs.com
            ]
    }
    
    
  3. 重启 Docker 服务

    sudo service docker restart
    

6. 验证 Docker 运行

  1. 运行测试容器

    docker run hello-world
    
  2. 检查容器是否正常运行

    • 如果看到“Hello from Docker!”消息,说明 Docker 已成功安装并运行。

7. 端口转发至 WSL2

  1. 查看 WSL2 的 IP 地址

    • 在 Ubuntu 中运行以下命令查看 WSL2 的 IP 地址:

      ip addr show eth0
      
    • 找到 inet 后面的 IP 地址(例如:172.xx.xx.xx)。

  2. 配置 Windows 端口转发

    • 打开 PowerShell(管理员权限),运行以下命令将 Windows 的 22 端口转发到 WSL2 的 IP 地址:

      netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=172.xx.xx.xx
      
    • 172.xx.xx.xx 替换为 WSL2 的实际 IP 地址。

  3. 验证端口转发

    • 在 Windows 上使用 SSH 客户端连接 localhost 的 22 端口,验证是否成功连接到 WSL2。

8. WSL 基础命令

  1. 列出已安装的 WSL 发行版

    wsl --list --verbose
    
  2. 设置默认 WSL 发行版

    wsl --set-default <发行版名称>
    
  3. 停止 WSL2 实例

    wsl --shutdown
    
  4. 导出 WSL 发行版

    wsl --export <发行版名称> <导出路径>
    
  5. 导入 WSL 发行版

    wsl --import <新发行版名称> <安装路径> <导出文件路径>
    
  6. 删除 WSL 发行版

    wsl --unregister <发行版名称>
    

9. 其他注意事项

  • WSL2 与 Docker 的集成:Docker 容器在 WSL2 中运行时,性能接近原生 Linux 环境。
  • 资源管理:WSL2 会占用较多内存和 CPU,建议根据需求调整资源限制。

通过以上步骤,您可以在 Windows 上成功安装 WSL2、Ubuntu 和 Docker。同时,您还可以通过端口转发和 WSL 基础命令更好地管理和使用 WSL2。