“ 小妙招:在win10中使用Linux可以选择WSL2。”
很多开发人员使用virtualbox和vagrant进行跨平台测试。win10 2004版本开始支持wsl2, 目前向下兼容到1909版本中。本文主要在windows上通过wsl2安装ubuntu,使用WSL2提升了windows单机开发环境的易用性,并且docker可以在win10和ubuntu中共享访问和管理。
安装系统更新,升级到win10 内部版本号为18363.1049 或更高版本。
安装wsl2更新。
安装ubuntu18.04.
安装容器管理工具 docker desktop for windows。
启动kubernetes和管理界面。
安装windows terminal。
01
—
启用wsl2安装ubuntu
windows更新设置-检查更新,升级到2020年8月的最新累计更新,可以安装wsl2,但是不能通过docker desktop进行容器共享管理。推荐使用windows 易升直接升级到win10 2004版本支持容器共享管理的功能。
https://www.microsoft.com/zh-cn/software-download/windows10
采用windows易升安装
2. 以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
3. 重启系统后,将WSL 2设置为默认版本
wsl --set-default-version 2
如果是1909版本, 需要安装wsl2的更新包之后再设置wsl2为默认版本。
安装wsl2的更新程序包。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
4. 安装ubuntu, 在Mircosoft Store中查找linux,进行下载和安装。
安装完成后在开始菜单中进入ubuntu终端。
02
—
在win10和ubuntu中管理docker容器
1. 安装单机容器管理工具 docker desktop for windows。
https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe
在windows powershell中执行
#git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
#cd k8s-for-docker-desktop
#git checkout v1.16.5
#.\load_images.ps1
2. 启用kubernetes
3. 配置kubernetes dashboard, 并且通过界面安装nginx。
设置上下文并创建kubernetes-dashboard
#kubectl config get-contexts
#kubectl config use-context docker-for-desktop
#kubectl get nodes
#kubectl create -f kubernetes-dashboard.yaml
生成TOKEN
# $TOKEN=((kubectl -n kubernetes-dashboard describe secret default | Select-String "token:") -split " +")[1]
# kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
#echo $TOKEN
在powershell中启动代理 kubectl proxy,访问地址:
http://localhost:8001/api/v1/namespaces/kubernetes- dashboard/services/https:kubernetes-dashboard:/proxy/#
4. 按照windows terminal , 在mircosoft store中搜索terminal ,进行安装。
docker ps 命令在windows和ubuntu中查看容器进程,查到的结果是一样的。
最后,就可以在win 10 下使用各种linux子系统了, 也可以在win10和linux下使用docker和kubernetes啦。