WSL2安装Docker

之前的wsl由于不支持守护进程,因此无法安装Docker。后来win10预览版 build18917中对wsl进行了升级,增加了对守护进程的支持。

Windows版本

wsl2现在只有win10预览版才能体验,可以通过:设置>更新和安全>Windows预览体验计划,按照提示操作加入预览体验计划,并升级成预览版,并且确保操作系统版本号大于等于18917,通过:设置>系统>关于,查看系统版本号。

开启Hyper-V

查看Hyper-V是否开启:控制面板>程序>开启或关闭Windows功能>Hyper-V

需要注意的是,Windows 10 家庭版是没有Hyper-V功能的,需要手动添加Hyper-V功能。将下面代码保存成后缀名为[.bat]的文件中,以管理员身份运行。完成后会提示是否立即重启,请选择Y,稍后重启可能会出现问题。

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

安装WSL

通过win10商店搜索需要的Linux版本,直接安装。
如果要安装其他版本的Linux,可以参考官方教程
安装好之后,默认Linux的PATH会包含Windows的PATH,如果Windows和Linux安装了相同的软件,这个时候就会出现问题,在Linux中如下设置。

sudo vim /etc/wsl.conf
#写入
[interop]
enabled=false
appendWindowsPath=false

#重启Linux
#在Windows中运行:
net stop LxssManager
net start LxssManager

如果要备份系统,可以这样:

#在Windows上运行
#将系统导出
wsl --export <分发版> <文件名>
例如:wsl --export Ubuntu-18.04 D:\vm\Ubuntu-18.04-bak.tar
#将系统导入
wsl --import <分发版> <安装位置> <文件名> [选项]
例如:wsl --import Ubuntu-18.04 D:\vm D:\vm\Ubuntu-18.04-bak.tar

升级WSL到WSL2

在Windows上运行以下命令

#查看已经安装的WSL及其状态
wsl --list --verbose
#输出如下
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         1
#将Ubuntu-18.04升级成版本2
wsl --set-version Ubuntu-18.04 2

安装Docker

参考我的另外一篇博客中的片段。

安装好Docker,运行几个容器后,我查看Windows进程,发现Vmmem这个进程非常占内存,查看WSL项目的issue后发现,可以通过下面的方法解决这个问题。

1. 在Windows中设置一个环境变量UserProfile,值设置成用户目录C:\Users\xxx
2. 在UserProfile下创建文件.wslconfig,写入如下内容,内存的大小自己设定。

[wsl2]
memory=4GB
swap=0
localhostForwarding=true

猜你喜欢

转载自blog.csdn.net/qq_33657251/article/details/104409815