WSL2下运行Docker

目录

WSL2来了

安装WSL2功能模块

安装Linux内核

安装Linux发行版

下载并安装 Docker Desktop

限制WSL对Windows机器资源利用

WSL命令

FAQ


WSL2来了

为什么要升级到WSL2?
第一代的WSL 并不“完整”。说到底 WSL 还只是一个用于访问 Linux 环境的兼容层,并没有实现 Linux 内核的完整功能。而 WSL2 基于Hyper-V功能的子集提供了“真正的 Linux 内核”。

局限:

The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server.(Use host networking | Docker Documentation)

安装WSL2功能模块

第一步:启动WSL:如果之前没有用过 WSL,那么首先需要安装 Windows 10 的 WSL 功能。打开 PowerShell ,使用管理员权限运行:( 执行完下面的命令,建议执行第二步,更新到WSL 2,但是如果你只是想安装WSL1,现在就可以重启电脑生效,然后执行“安装Linux发行版”。)

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

第二步:更新到WSL2:必须是Win10 Version 1903 or higher, with Build 18362 or higher。详情请参考Install WSL | Microsoft Docs链接。如果满足要求则只需下面的命令使能VirtualMachinePlatform,然后重启机器

windows11在powershell下,执行wsl --update即可(确保系统更新服务开启);完事执行wsl --shutdown 重新计入wsl。

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

安装Linux内核

下载Linux内核更新包:WSL2 Linux kernel update package for x64 machines。双击wsl_update_x64.msi执行安装

安装Linux发行版

在安装Linux发行版之前,首先执行下面的命令,设置WSL2作为默认的WSL版本。

wsl --set-default-version 2

 然后,运行Microsoft Store,搜索Linux关键字即可。例如:Ubuntu-20.04 LTS,选择下载安装即可。

在 PowerShell 中使用如下命令可以检查是否安装成功:

wsl --list --verbose
或
wsl.exe -l -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2

 WSL Integration默认运行在默认的WSL下,如果有好几个Linux发行版,可以执行下面的命令设置默认发行版,在默认发行版前会有*标识:

wsl --set-default 
例如:
wsl --set-default Ubuntu-20.04

下载并安装 Docker Desktop

下载和安装过程略。安装成功后,打开Docker Desktop,点击右上角Setting-Resources-WSL Integration

WSL2下运行Docker_第1张图片

此时执行bash ~,然后执行docker命令就可以执行了。

WSL2下运行Docker_第2张图片

限制WSL对Windows机器资源利用

【Windows Build 19041和更高版本中可用】执行wsl进入分发版Linuxshell环境,默认当前目录应该是:/mnt/c/Users/用户名。

创建.wslconfig文件,写入:

[wsl2]
memory=4GB
processors=2

WSL命令

# 设置默认分发版
wsl -s , wsl --setdefault
# 列出分发版
wsl -l --running, wsl --list --running
wsl -l --all, wsl --list --all
# 取消注册和重新安装分发版
wsl --unregister , wslconfig /u, /unregister
# 以特定用户的身份运行
wsl -u , wsl --user
# 运行特定的分发版
wsl -d , wsl --distribution

# 更改分发的默认用户
config --default-user
> wsl -l -q
Ubuntu-20.04
> ubuntu2004 config --default-user root
> bash ~
root@win10-home-liuyl:~# pwd
/root

参考:https://docs.microsoft.com/zh-cn/windows/wsl/wsl-config
 

FAQ

Q1:apt-get -y upgrade太慢

解决:更新Ubuntu 20.04镜像源为aliyun,参考:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

Q2:Microsoft Store打开报 “microsoft store 无法加载页面。代码代码: 0x80131500”

解决:关于0x80131500错误的问题,打开IE浏览器,点击设置>>internet选项>>高级选项卡>>安全,查看“使用TLS1.2”和其他的TLS选项是否没有勾选,没有的话,勾选了。

你可能感兴趣的:(云计算-容器云,docker,windows)