「折腾」VSCode + wsl2 + Docker 探究
条评论建议参考官方文档:
安装 WSL | Microsoft Docs:
要点:
wsl --install
命令将启用所需的可选组件,下载最新的 Linux 内核,将 WSL 2 设置为默认值,并安装 Linux 发行版- 可以使用
wsl --install -d <Distribution Name>
指定安装的 Linux 发行版,否则默认安装 Ubuntu; wsl -l -o
命令可以查询可用 Linux 发行版列表;
1 | # 查看可用列表 |
注:Debian 版本信息为 9.5 (stretch),好像不符合 Docker 的要求;
下边是我的踩坑记录,相当于分步安装,可以只安装 wsl2 功能自身而不安装 Linux 发行版,之后可以从备份中恢复;
安装 WSL:
- 「程序和功能」→「启用或关闭 Windows 功能」
- 勾选如下两项:
- 「适用于 Linux 的 Windows 子系统」
- 「虚拟机平台」
- 确定并重启系统;
理论上也可以 PowerShell 中执行如下命令:
1 | # 需要管理员权限,执行后也要先重启再安装内核更新 |
升级为 WSL 2:
访问:https://aka.ms/wsl2kernel
;
下载并安装对应内容中提供的「WSL2 Linux 内核更新包」;
遇到如下错误提示也意味着需要装这个更新包;
WSL 2 需要更新其内核组件。有关信息,请访问 https://aka.ms/wsl2kernel
设置默认版本:
决定下一步将要安装的 Linux 发行版默认使用的 WSL 版本;
我一开始没执行这一步,但是好像可以再改;
1 | wsl --set-default-version 2 |
安装 Linux 发行版:
- 直接通过「Microsoft Store」安装;← 点击链接会打开「Microsoft Store」应用内的一个列表页,但是包含的项目好像不全;
- 执行
wsl -l -o
;
1 | wsl -l -o |
查看已安装 Linux 子系统:
wsl -l -v
NAME | STATE | VERSION | |
---|---|---|---|
* | Ubuntu-20.04 | Running | 1 |
备份和恢复:
1 | # 从文件导入 |
其他:
- wsl 内部可以用
/mnt/c/xxx
直接读写 Windows 下的内容; - Windows 可以使用
\\wsl$\Ubuntu-20.04\home\wdssmq
浏览 wsl 内文件;
修改已安装 Linux 子系统:
如果直接安装了 wsl2 则可以跳过这一步;
要在以前安装的 Linux 发行版上从 WSL 1 更新到 WSL 2,请使用命令 wsl --set-version <distro name> 2
,将 <distro name>
替换为要更新的 Linux 发行版的名称。 例如,wsl --set-version Ubuntu-20.04 2
会将 Ubuntu 20.04 发行版设置为使用 WSL 2。
然而我第一次执行时提示如下:
1 | wsl --set-version Ubuntu-20.04 2 |
所以需要安装上边说的「WSL2 Linux 内核更新包」,安装后再次执行转换:
1 | wsl --set-version Ubuntu-20.04 2 |
安装 Docker:
Install Docker Engine on Ubuntu | Docker Documentation
https://docs.docker.com/engine/install/ubuntu/
WSL 上的 Docker 容器入门 | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers
1 | # 升级、安装前置依赖: |
安装 Z-BlogPHP:
【折腾】Docker 化安装 Z-BlogPHP_电脑网络_沉冰浮水
↑ 上文是基于 CentOS 环境写的,Ubuntu 下使用需要在命令前加 sudo
;「这东西果然好麻烦」
win10 内直接127.0.0.1:[端口号]
即可访问 WSL 内的服务;
Win10 与 WSL2 间的网络和文件互访 - LOGI
https://logi.im/script/achieving-access-to-files-and-resources-on-the-network-between-win10-and-wsl2.html
安装 Git:
1 | sudo apt install git |
默认安装的版本较低,需要最新版可以参考下方:
如何在 Ubuntu 上安装最新版本的 Git - 知乎
https://zhuanlan.zhihu.com/p/108991735
其他:
WSL2 网络代理配置(apt 与 git) - 知乎
https://zhuanlan.zhihu.com/p/108927713
cmd 中执行 ipconfig
查看网络信息,然后在 wsl2 中执行export https_proxy="socks5://$IP:$PORT"
;
实际用 192.168.*.*
好像成功了;
1 | ipconfig |
在 WSL 2 上设置 Node.js | Microsoft Docs
https://docs.microsoft.com/zh-cn/windows/dev-environment/javascript/nodejs-on-wsl
ubuntu18.04 安装 nodejs 最新版、指定版 12.x 14.x - 尽情山水 - 博客园
https://www.cnblogs.com/forheart/p/13203249.html
【折腾】VSCode 远程开发配置(Remote Development)_电脑网络_沉冰浮水
https://www.wdssmq.com/post/20201120519.html