Windows10上开启WSL2(Windows Subsystem for Linux 2)及Docker Desktop For Windows
什么是WSL2
WSL2(Windows Subsystem for Linux 2)是适用于Linux的Windows子系统体系结构的一个新版本,它支持适用于Linux的Windows子系统在Windows上运行ELF64 Linux二进制文件。它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。
- 网卡管理、网络抓包、查看网络连接状态、防火墙等较底层的网络相关功能。
- 挂载文件(如 ext4 文件、squashfs 文件)和网络资源(如 nfs、ssh )到本地。
- tmpfs (在 /run/shm 或者 /dev/shm,/tmp 不是)。
- 完整的 cgroups,因此可以运行 Docker 等容器。
- 完整的 IPC ( WSL 缺失一部分,比如运行不了 fakeroot )。
- 可修改内核参数、添加内核模块,以及替换内核。因此可以支持很多更底层的应用。
因为之上的这些原因,WSL2可以更好地享受完整Linux系统带来的方便,不需要因为WSL的功能缺失而使用各种迂回方法。
优势
- 进程启动开销大大减少,需要频繁启动进程的场景性能大幅提升。
- 本地磁盘(不包括挂载的 /mnt/*)读写性能大幅提升。
前提
启用可选的两个Windows系统功能
- 适用于Linux的Windows子系统
- 虚拟机平台
方式一:走系统设置开启
前往系统设置-应用-程序和功能-启用或关闭Windows功能,勾选上述目标项,确认即可。

方式二:走PowerShell命令开启
如果你习惯命令行,推荐用如下命令来开启上诉两项:
# 安装适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用“虚拟机平台”可选组件
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完,请务必重启计算机。
将WSL2设置成默认版本
在Powershell中,输入如下命令:
wsl --set-default-version 2

出现上图提示就表示设置成功了。
如果遇到点问题,可能是需要升级一下wsl组件,安装一下安装包即可。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
安装你中意的Linux版本
如果你是Windows10,请打开你的Microsoft Store,搜索你的目标Linux版本。

或者直接点击已下知道的几个链接,可以跳转到对应的安装页面。
- Ubuntu 16.04 LTS
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- openSUSE Leap 15.1
- SUSE Linux Enterprise Server 12 SP5
- SUSE Linux Enterprise Server 15 SP1
- Kali Linux
- Debian GNU/Linux
- Fedora Remix for WSL
- Pengwin
- Pengwin Enterprise
- Alpine WSL

下载完毕后,启动并打开,会提示你输入新的用户名和密码,这将是你创建的第一个用户。
安装Docker Desktop For Windows
最新稳定版安装包:Docker Desktop Installer.exe

默认推荐勾选:
- Enable WSL 2 Windows Features
- Add shortcut to desktop




右键桌面右下角的Docker图标,进入Setting界面,可以设置你安装的Linux版本作为默认的distro


因为一些不确定的原因,这里推荐你切换到Linux的终端环境来执行一下命令,而不是使用PowerShell。
资源管理器访问wsl
在资源管理器的地址栏输入如下命令,即可轻松访问Linux子系统。
\\wsl$


Visual Studio Code访问WSL
通过安装以下插件,可以实现从Visual Studio Code对WSL的访问。
通过安装以下插件,可以实现从Visual Studio Code对WSL中Docker Container的访问。
阿里云加速Docker镜像

资料
Windows10上开启WSL2(Windows Subsystem for Linux 2)及Docker Desktop For Windows的更多相关文章
- 适用于windows10 Linux子系统的安装管理配置 How To Management Windows Subsystem for Linux WSL
什么是WSL Windows Subsystem for Linux 简称WLS,适用于Linux的Windows子系统,可以直接在Windows上运行Linux环境(包括大部分命令行工具) Linu ...
- Windows Subsystem for Linux(WSL)安装记录
什么是WSL Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层.它是由微软与Canoni ...
- Windows SubSystem for Linux
Summary of Windows SubSystem for Linux Install Ubuntu Run PowerShell as administrator and input: Ena ...
- WSL (Windows Subsystem for Linux) 的 VSLAM (Visual Simultaneous Localization and Mapping) 道路
WSL 的 VSLAM 道路 以 Windows Subsystem for Linux 闯入 Visual Simultaneous Localization and Mapping 世界的艰难道路 ...
- Bash on Ubuntu on Windows ( Windows Subsystem for Linux)
1 # Bash on ubuntu on Windows http://www.cnblogs.com/anonymous-ufo/p/6143480.html 1 1 如何启用Bash on u ...
- WSL(Windows Subsystem for Linux)--Pico Process Overview
[转载] Windows Subsystem for Linux -- Pico Process Overview Overview This post discusses pico processe ...
- Windows Subsystem for Linux 环境变量
WSL(Windows Subsystem for Linux )的环境变量是包含Linux子系统和Windows系统的,测试如下: wy@WY-PC:/mnt/c/Windows/System32$ ...
- WSL优化 (Windows Subsystem for Linux) Linux子系统优化配置
目录 wsl优化 (Windows Subsystem for Linux) Linux子系统优化 1. 永久修改wsl终端字体 2. 修改Linux终端配色 3. 添加WSL到右键菜单 wsl优化 ...
- Running ASP.NET Core applications on Windows Subsystem for Linux
Setting up Linux on Windows 10 First thing is to enable Windows Subsystem for Linux. It doesn’t inst ...
随机推荐
- JEP 尝鲜系列 3 - 使用虚线程进行同步网络 IO 的不阻塞原理
相关 JEP: JEP 353 Reimplement the Legacy Socket API JEP 373 Reimplement the Legacy DatagramSocket API ...
- [刷题] PTA 7-62 切分表达式 写个tokenizer吧
我的程序: 1 #include<stdio.h> 2 #include<string.h> 3 #define N 50 4 char token[]= {'+','-',' ...
- 保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java、Golang两种客户端教学Case)
保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java.Golang两种客户端教学Case) 目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitM ...
- 【转载】Pycharm调试高效,还是pdb调试高效? (在服务端)
https://segmentfault.com/q/1010000005067119 Pycharm调试高效,还是pdb调试高效? (在服务端) python 3.9k 次浏览 问题对人有帮助, ...
- Kali Linux 安装中文输入法
1.设置源 vim /etc/apt/sources.list 添加一行 deb http://mirrors.aliyun.com/kali kali-rolling main non-free c ...
- 附: Python爬虫 数据库保存数据
原文 1.笔记 #-*- codeing = utf-8 -*- #@Time : 2020/7/15 22:49 #@Author : HUGBOY #@File : hello_sqlite3.p ...
- Linux_配置认证访问FTP服务
[RHEL8]-FTPserver:[Centos8]-FTPclient !!!测试环境我们首关闭防火墙和selinux(FTPserver和FTPclient都需要) [root@localhos ...
- 054.Python之Ubuntu安装Pycharm
在学习Django的时候,开始使用的是centos,但是在做的时候,有一个错误,换一个ubuntu环境,安装一个pycharm进行学习开发 1. 下载PyCharm安装包 进入官网下载包 下载后 2. ...
- 6T硬盘分区
6T硬盘分区 1.umount /data1 # 如果正在使用需要此命令卸载. 2.parted /dev/sdb # parted 分区工具,选择要分区的硬件设备 mklabel gp ...
- Java 进制及转换
Java 整型的表现形式 Java 数据类型中有四种整型,分别是 byte.short.int.long,而整型定义下的数据还会按进制来区分: 十进制整数:都是以 0-9 这九个数字组成,不能以 0 ...