WSL2下运行Docker
目录
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 <distro name>
例如:
wsl --set-default Ubuntu-20.04
下载并安装 Docker Desktop
下载和安装过程略。安装成功后,打开Docker Desktop,点击右上角Setting-Resources-WSL Integration
此时执行bash ~,然后执行docker命令就可以执行了。
限制WSL对Windows机器资源利用
【Windows Build 19041和更高版本中可用】执行wsl进入分发版Linuxshell环境,默认当前目录应该是:/mnt/c/Users/用户名。
创建.wslconfig文件,写入:
[wsl2]
memory=4GB
processors=2
配置私有镜像仓库
默认在Docker Desktop安装用户下,例如:C:\Users\user1\.docker\daemon.json。将如下内容追加上,然后重启Docker服务。在WSL中直接修改/etc/docker/daemon.json是无效的。
{
……
"insecure-registries": ["192.168.11.XXX"]
}
WSL命令
# 设置默认分发版
wsl -s <DistributionName>, wsl --setdefault <DistributionName>
# 列出分发版
wsl -l --running, wsl --list --running
wsl -l --all, wsl --list --all
# 取消注册和重新安装分发版
wsl --unregister <DistributionName>, wslconfig /u, /unregister <DistributionName>
# 以特定用户的身份运行
wsl -u <Username>, wsl --user <Username>
# 运行特定的分发版
wsl -d <DistributionName>, wsl --distribution <DistributionName># 更改分发的默认用户
<DistributionName> config --default-user <Username>
> wsl -l -q
Ubuntu-20.04
> ubuntu2004 config --default-user root
> bash ~
root@win10-home-liuyl:~# pwd
/root# 关闭wsl虚机
wsl --shutdown
参考: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选项是否没有勾选,没有的话,勾选了。
更多推荐
所有评论(0)