Wsl 使用笔记

Windows Subsystem for Linux, 可以部分替代 Linux。

wsl 常用命令

重启 wsl

尝试重启 wsl,使用命令 wsl --shuntdown 或其他命令,终端被挂起,无反应。

解决办法:kill LxssManager

  1. 找到 svchost.exe 进程的 pid, 然后在「任务管理器/详细信息」里结束这个进程
echo 寻找 `pid` 的指令:
tasklist /svc /fi "imagename eq svchost.exe" | findstr LxssManager
  1. PowerShell7kill LxssManager
echo 在 `PowerShell7` 里运行(可能需要管理员启动):
Stop-Process -Id $(Get-CimInstance -ClassName Win32_Service -Filter "Name='LxssManager'").ProcessId -Force

安装 docker

最简单的办法,大概是安装 Docker Desktop,笔者使用了一段时间,似乎有兼容性问题(可能和笔者同时使用 Hyper-V 安卓模拟器有关系),于是又更换为 Linux 版本的 docker

直接运行官方的脚本,即可完成安装:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start

但是笔者的机器安装过 Docker Desktop,运行 service docker start 后显示:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

经过排查,发现还需要清理 Docker Desktop 相关的配置。安装过 Docker Desktop,所以 docker 的配置文件 /root/.docker/config.json 含有这个配置项:

{
    "credsStore": "desktop.exe"
}

docker 会因为配置了 "credsStore" 字段去运行 "desktop.exe",而这个程序就是 Docker Desktpo,才导致 docker 无法启动。

解决办法:

  • 删除 docker 配置文件里的 "credsStore" 字段。
  • 如果里面的配置不重要,也可以直接删除这个文件:rm /root/.docker/config.json
Licensed under CC BY-NC-SA 4.0
发表了8篇文章 · 总计7.29k字