wsl2 (Windows Subsystem for Linux)使用学习

Posted 跨链技术践行者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wsl2 (Windows Subsystem for Linux)使用学习相关的知识,希望对你有一定的参考价值。

wsl2 还不稳定,存在许多bug, 可以在:https://github.com/microsoft/WSL 进行提交

安装

win10 更新之 Windows 10 build 18917 Insider 版本,就可以使用 wsl2。

  • 安装方式一,以管理员身份运行powershell,执行命令,然后重启电脑

    Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
    
  • 方式二

控制面板— 程序和功能— 启用或关闭 windows功能— 适用于Linux的Windows子系统— 打 √

— 重启电脑

wsl 命令

  • 查看帮助

    wsl -h
    
  • 设置默认版本,选择linux默认运行在 wsl1 还是 wsl2

    wsl --set-default-version 2
    
  • 设置 某个linux发行版运行版本,需要先安装好 linux 后才可以转换

    wsl --set-version <distro> 2
    

    示例:

    wsl --set-version ubuntu 1
    
  • ubuntu 版本转换

    wsl --set-version ubuntu 2
    
  • 查看安装的 linux

    wsl --list --verbose
    

  wsl -l -v
  • 停止所用运行Linux

    wsl --shutdown
    
  • 启动虚拟机

    • 直接输入 系统名称:如 Ubuntu 、kali等 直接进入
    • 或使用 wsl命令,例如:

      wsl -d ubuntu
      

安装linux

  • 打开 应用商店,搜索 wsl ,商店提供 ,ubuntu,SUSE Linux Enterprise Server 12,Debian,Kail Linux
  • 点击安装

安装 ubuntu

  • 在应用商店,搜索 Ubuntu ,进行安装

  • 设置用户名密码

  • 设置 root密码

    sudo passwd root
    
  • 安装docker,和正常ubuntu安装docker一样

方式一:

  sudo apt-get update
  sudo apt-get install -y \\
      apt-transport-https \\
      ca-certificates \\
      curl \\
      gnupg-agent \\
      software-properties-common
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  sudo add-apt-repository \\
     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \\
     $(lsb_release -cs) \\
     stable"
  sudo apt-get update
  sudo apt-get install docker-ce docker-ce-cli containerd.io
  • 启动docker

    sudo service docker start
    
  • 运行容器测试

    sudo docker run hello-world
    
  • docker 以普通用户执行

    sudo usermod -aG docker your-user
    sudo service docker restart
    
  • windows 网络访问 linux

    • 运行 nginx容器

      docker run --name nginx -d -p 8888:80 nginx
      
    • linux内部访问

      curl http://127.0.0.1:8888
      
    • windows访问

    • 查看 linuxIp

      ip addr
      

    查看 eth0 ip,这里是 192.168.161.203 每个机器的都不一样

    • 访问:打开浏览器,访问 http://192.168.161.203:8888 得到nginx页面

    • 访问 http://127.0.0.1:8888 得不到结果,拒绝访问

  • ubuntu 重启系统

    • 在Linux 执行 重启或关机命令,会报错

      ziyun@DESKTOP-JVE2TQQ:/mnt/c/WINDOWS/system32$ sudo reboot
      System has not been booted with systemd as init system (PID 1). Can't operate.
      Failed to talk to init daemon.
      ziyun@DESKTOP-JVE2TQQ:/mnt/c/WINDOWS/system32$ sudo shutdown
      System has not been booted with systemd as init system (PID 1). Can't operate.
      ziyun@DESKTOP-JVE2TQQ:/mnt/c/WINDOWS/system32$
      
    • 需要执行 wsl命令

    • 终止所有运行的linux

      wsl --shutdown
      
    • 终止指定的linux

      wsl --terminate <distro>
      # 或 
      wsl -t <distro>
      

    示例:

    • 查看 linux列表

      wsl -l  
      
    • 关闭 ubutnu ,关闭没有任何显示

      wsl -t Ubuntu
      
  • 启动 ubuntu

    • 或执行 wsl -d ubuntu
    • 或者输入 ubuntu
  • 将ubuntu导出

    • 导出类似,docker的导出,方便移动等

    • 导出到d盘:

      wsl --export Ubuntu D:/ubuntu.tar
      

    很快就会完成,本次实例 tar大小 1.15G,进行压缩 ,大小为 414M

    • 导入

      wsl --import Ubuntu D:/ubuntu_dir  D:/ubuntu.tar
      
    • –import :导入

    • ubuntu: 导入名称,可自定义

    • D:/ubuntu_dir : 导入到那个目录,导入成功,有 ext4.vhdx 文件

    • D:/ubuntu.tar: 源文件

报错

参考的对象类型不支持尝试的操作

参考:https://answers.microsoft.com/zh-hans/insider/forum/all/wsl2%E5%AE%89%E8%A3%85kali/b6dd4c62-1130-4a7c-9462-1e9e5f38dab2 执行命令:

netsh winsock reset

docker for wsl2

参考:https://docs.docker.com/docker-for-windows/wsl-tech-preview/

docker windows 开发版可以使用内置 WSL2功能, 优点: * 通过 WSL2 使用其自带 ubuntu系统来运行docker。不占用系统应用商店的Ubuntu * 重启速度贼快。

不过: * 安装Windows 10 Insider Preview内部版本19041或更高版本。 * 使用代理依然 很有可能会报 参考的对象类型不支持尝试的操作 错误。方法参考上面。

以上是关于wsl2 (Windows Subsystem for Linux)使用学习的主要内容,如果未能解决你的问题,请参考以下文章

VMware Workstation 与 Windows Subsystem for Linux 2(WSL2)不兼容问题的一种解决办法

Windows 10 安装 Ubuntu 子系统

wsl相关总结

控制台 (/SUBSYSTEM:CONSOLE) 和 Windows (/SUBSYSTEM:WINDOWS) 之间的区别

wsl2 运行导致windows 硬盘使用率100%

wsl2 运行导致windows 硬盘使用率100%