当前位置: 首页 > news >正文

Windows 安装 WSL 并集成 Docker

文章目录

  • 一、简介
  • 二、安装 WSL
  • 三、集成 Docker
  • 小结

一、简介

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。因为微软官方已经提供了完善的介绍和配置文档,所以我这里仅供参考,请以官方文档为准。在安装前请明确系统版本要求。另外,推荐在微软商店中下载安装 Windows Terminal,这是一个很好用的开源终端工具。
在这里插入图片描述

二、安装 WSL

  1. 管理员身份启动powershell,通过命令行启用windosw里可选功能。执行如下指令,启用 Windows Subsystem for Linux (WSL),让 Windows 支持运行 Linux 用户态程序(主要用于 WSL 1),如果只想使用 WSL 1,执行重启之后,可以直接安装所需的系统发行版。否则执行后无需立即重启

    dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    

    启用功能

  2. 如果是Windows 10,对于 x64 系统,WSL 2 要求系统版本为 1903 或更高,内部版本为 18362.1049 或更高;对于 ARM64 系统则要求 2004 或更高,内部版本为 19041 或更高。或者直接使用 Windows 11。详情可以参考官方介绍。若要检查 Windows 版本及内部版本号,使用win+R,并输入winver回车后会弹出相应界面。
    系统版本

  3. 如果想要使用 WSL 2,继续执行如下指令,启用虚拟机平台,提供轻量级虚拟化支持,是 WSL 2 运行完整 Linux 内核的前提。这里默认我们的系统满足其最低版本要求。

    dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    

    启用功能2

  4. 执行完上述两个dism命令启动子系统虚拟机之后,需要重启计算机生效。除了使用上述指令开启windows可选功能之外,也可以在控制面板中,通过程序和功能开启同样的功能并重启计算机,这里如果有Hyper-V也可以一并开启。
    控制面板

  5. Windows 11 系统可以直接通过指令在线更新 WSL 2Linux内核 到最新版本。对于Windows 10 系统如果不能通过指令更新,可以使用离线安装的方法下载.msi文件并双击运行。官方提供了适用于 x64的内核更新包 以及 ARM64的内核更新包,请根据架构类型选择合适的内核更新包。

    wsl --update
    

    更新

  6. PowerShell中可以通过如下指令查看 WSL 相关的版本信息。

    wsl --version
    

    版本信息

  7. 打开 PowerShell 并运行以下命令,在安装新的 Linux 发行版时将 WSL 2 设置为默认版本,推荐使用 WSL 2,因为其完整的 Linux 内核支持。

    wsl --set-default-version 2  # 1 同理
    

    版本查看

  8. PowerShell中通过如下指令查看可安装的系统发行版,也可以在微软商店中搜索相关系统的发行版本进行安装。

    wsl --list --online
    

    安装版本
    微软商店

  9. PowerShell中使用命令行安装需要的系统版本,以Ubuntu-24.04为例。安装完成后会提示创建用户名及密码,创建后会直接进入Linux系统。而在微软商店中安装的系统需要在terminal中手动启动。

    wsl --install -d Ubuntu-24.04
    

    下载版本
    版本安装

  10. PowerShell中通过如下指令将某一个 Linux 发行版从 WSL 1 升级到 WSL 2 或从 WSL 2 降级到 WSL 1,以Ubuntu-18.04为例。

     wsl --set-version Ubuntu-18.04 1
    

    在这里插入图片描述

  11. PowerShell中通过如下指令列出已安装的Linux发行版,查看系统状态和相应的WSL版本。

    wsl -l -v   # wsl --list --verbose
    

    版本

  12. 当安装多个不同的系统发行版之后,可以通过如下指令在 PowerShell设置输入wsl之后默认启动的系统,这里以Ubuntu-24.04为例。

    wsl --set-default Ubuntu-24.04
    

    在这里插入图片描述

  13. 若要在不更改默认启动的情况下在 PowerShell 中运行特定的发行版,可以按照如下方式启动,同样以Ubuntu-24.04为例。

    wsl --distribution Ubuntu-24.04
    

    特定版本

  14. 通过上述方法安装的系统都是安装在C盘,如果想要安装到其他盘中,可以先将系统导出为 tar 文件,这里以Ubuntu-24.04为例,导出到d:/ubuntu24.tar文件中。

    wsl --export Ubuntu-24.04 d:/ubuntu24.tar
    
  15. 导出后,需要注销当前的Linux发行版。

    wsl --unregister Ubuntu-24.04
    
  16. 重新导入并安装到D盘ubuntu目录下。

    wsl --import Ubuntu-24.04 d:/ubuntu d:/ubuntu24.tar --version  2
    # wsl --import <导入Linux名称> <安装位置> <tar包路径> 版本(wsl) 
    
  17. 一般完成迁移以后,WSL默认以root账户登录,在PowerShell中执行如下指令更改默认登录账户为ubuntu

    ubuntu2404 config --default-user ubuntu
    
  18. 可以通过如下指令进一步确认安装位置,这里以Ubuntu-24.04为例。

    (Get-ChildItem -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" | Where-Object {$_.GetValue("DistributionName") -eq "Ubuntu-24.04"}).GetValue("BasePath")
    

三、集成 Docker

  1. 在 WSL 版本 1 中,由于 Windows 和 Linux 之间存在根本差异,Docker 引擎无法直接在 WSL 内部运行,因此 Docker 团队使用 Hyper-V VM 和 LinuxKit 开发了替代解决方案。 但是,由于 WSL 2 现在在具有完整系统调用容量的 Linux 内核上运行,因此 Docker 可以在 WSL 2 中完全运行。 这意味着 Linux 容器可以在不仿真的情况下本机运行,从而提高 Windows 和 Linux 工具之间的性能和互作性。详细信息可以参考微软官网介绍。
  2. 下载 Docker Desktop 并在安装的时候选择适用于 Windows 的 Docker Desktop 支持的 WSL 2 后端,可以在基于 Linux 的开发环境中工作并生成基于 Linux 的容器。
    在这里插入图片描述
  3. 安装完成之后,打开Docker Desktop面板找到 设置Settings),确保在 通用General)中开启 使用基于 WSL 2 的引擎Use the WSL 2 based engine
    开启后端引擎
  4. 资源Resources)中找到 WSL集成WSL integration)选择要启用 Docker 集成的已安装 WSL 2 分发版。这里勾选 默认 和需要的分发版与 Docker 集成。
    开启固定版本
  5. 这里以Ubuntu-24.04为例,进入系统执行docker version,如果客户端和服务端信息显示正常,则 Docker引擎 正常。
    在这里插入图片描述

小结

上述内容均来自微软官方及个人实践,同样还有其他不错的关于WSL的博文可供参考,如有其他问题欢迎在评论区讨论,谢谢!!

http://www.dtcms.com/a/561586.html

相关文章:

  • LVS-DR模式配置
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十六)集群部署模块——LVS-DRTUN模式配置
  • 济南网站建设网站最新域名解析网站
  • LVS-NAT、DR、TUN模式配置
  • Qt样式深度解析
  • 怎么用自己电脑做网站优化一个网站
  • 莱芜做网站优化溧阳建设集团有限公司网站
  • id创建网站徐州品牌网站建设
  • 创意设计app青岛网站seo技巧
  • 中英文网站建设 大概要多久张掖建设网站
  • python 异步编程 -- 理解concurrent.futures.Future 对象
  • 【网络工程师】物理二层STP协议
  • 网站关键词排名优化应该怎么做网站备案成功后怎么办
  • Vue3组件间通信——pinia
  • php零基础做网站网站没后台怎么修改类容
  • 郑州做网站狼牙建立网站的链接结构有哪几种形式?
  • RTL8762KD_EVB_Board-嘉立创EDA设计
  • 西安网站制作公司怎么选宁波企业做网站哪家好
  • 手机网站开发算什么费用seo服务外包价格
  • 在 ​CentOS 7​ 的 Linux 系统中配置 ​NFS
  • 网站欣赏网站整合营销传播成功案例
  • 深圳高端网站设计建设网站推广百度优化
  • React Native 项目实战指南
  • 百度品牌网站建设优化大师如何删掉多余的学生
  • 做平面设计的一般浏览什么网站wordpress自定义文章顺序
  • 打造推理模型的4种方法——李宏毅2025大模型课程第7讲
  • 金融行业客服系统中合规高效的身份验证流程分享
  • 网站服务器怎么维护濮阳网站建设在哪里
  • 四川省住房和城乡建设厅网站官网西安做网站缑阳建
  • linux——有关权限的话题。——权限掩码——默认文件权限的理解/文件共享、粘滞位