win10安装wsl2和docker

[TOC]

参考

https://zhuanlan.zhihu.com/p/69121280

踩过的坑

  • WSL2需要Windows build 18917 更新,WSL不需要.但是最好首先将操作系统更新到需要的版本,而不是先安装WSL再更新
  • 不要安装不在windows商店的Linux发行版(包括github上的各种centos以及centos官方docker镜像,centos目前不是windows商店的Linux发行版之一)
  • windows升级过程可能会有多个更新,每次更新都检查C盘,预留10G以上的硬盘空间

安装过程

以下默认使用管理员权限打开powershell

1.确认操作系统版本

开始菜单(右键)>设置>系统>关于>windows规格

如果版本号(小数点之前的数字)小于18917需要更新,否则进入步骤3安装wsl

2.升级window版本

2.1开启快速通道(Insider Preview)

开始菜单(右键)>设置>更新和安全>windows预览体验计划




2.2更新

开始菜单(右键)>设置>更新和安全>windows更新

开始更新,可能需要重启,时间比较长

更新完成后如下:

操作系统版本大于18917即可

3.安装wsl

3.1 开启wsl

在powershell命令行中输入如下命令开启wsl

1
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux


可能需要重启

3.2 在windows商店中选择合适的linux发行版

这里我选择了Ubuntu,安装

3.3测试wsl

命令行中输入wsl -l -v 查看,这里版本应该是1

4.升级到wsl2

4.1开启VirtualMachinePlatform

1
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

4.2将发行版的wsl版本设置为2

命令为wsl --set-version <Distro> 2,例如wsl --set-version Ubuntu 2

如果想使wsl2 成为默认架构,可以使用以下命令执行此操作:

1
wsl --set-default-version 2

这将使你安装的任何新发行版初始化为 wsl2 发行版。

4.3测试wsl2

5.安装docker

5.1进入wsl2

输入wsl -u root进入wsl2,并切换到根目录

5.2快速安装docker

1
2
3
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ sudo service docker start

测试一下,运行docker run hello-world

5.3在docker中安装mysql

https://hub.docker.com/_/mysql 找到合适的mysql镜像版本,这里使用mysql5.7.27

运行如下命令

1
docker run --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=123qweasd -d mysql:5.7.27

这里启动了一个mysql5.7.27的docker镜像,密码为123qweasd,并将docker的3306端口(mysql默认端口)映射到了wsl2的3306端口

在wsl2中使用ifconfig获取局域网ip记住

6.在windows中测试

在Win10中打开IDEA旗舰版,用自带的数据库连接工具连接成功

host和mysql密码和上一步相同

至此,在windows中连接wsl2中的docker中的mysql成功