两句话讲清楚windows安装wsl和docker
我不会设置仅粉丝可见,不需要你关注我,仅仅希望我的踩坑经验能帮到你。如果有帮助,麻烦点个 👍 吧,这会让我创作动力+1 😁
写在前面
- 背景:win10/win11,微软商店打不开(打得开还不简单?能打开你直接搜别的攻略得了)
- 准备:
- 先直接说一个结论:不要考虑 Docker Desktop,你都装wsl了,为什么还要用这玩意儿!此外,即使你想用,后续会遇到一个问题(怎么在wsl的linux系统里重启docker服务,没错,
systemctl restart docker
会显示找不到docker服务,即使你能正常使用docker) - 不考虑微软商店安装,不多比比,很多原因导致你的微软商店打不开,不折腾了,走离线安装,听我的。如果你能打开微软商店,很多事情就变得简单了,你自己看着办吧。
- 先直接说一个结论:不要考虑 Docker Desktop,你都装wsl了,为什么还要用这玩意儿!此外,即使你想用,后续会遇到一个问题(怎么在wsl的linux系统里重启docker服务,没错,
解决方案
-
-
先确认你的系统能不能安装wsl2,不能就赶紧放弃(我是22H2)
https://docs.docker.com/desktop/install/windows-install/
-
Windows 11 64-bit: Home or Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
-
Windows 10 64-bit:
- We recommend Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher.
- Minimum required is Home or Pro 21H2 (build 19044) or higher, or Enterprise or Education 21H2 (build 19044) or higher.
-
-
很好,你满足了系统要求,已经成功一半了。继续 配置环境
-
启动控制面板,打开hyperV、适用于Windows的linux子系统、虚拟机功能,然后重启
-
-
-
下载系统,比如ubuntu啥的
-
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#downloading-distributions
命令行下载、或者点击直接下载都可以,下载后是
.appx
后缀的文件 -
把这个
.appx
的文件复制到你想要放置系统的位置,比如D:\ubuntu22\
下,右键解压缩(解压不了,就把后缀.appx
改为.zip
再解),解压后的文件列表如下: -
双击红色箭头指的文件就可以开始安装系统了,启动!完事儿后会让你输入用户名和密码,用户名就不说了,密码是未来你sudo要用的密码。
-
安装完成后,开始菜单里面就能看到ubuntu了,双击打开。或者直接在命令行中输入ubuntu,也能打开。(打开后不要关,下面验证的时候,state才会显示为running)
-
检查安装好了没:
wsl --list --verbose
-
备注:如果要卸载:
wsl --unregister Ubuntu
-
-
环境配置:
-
wsl默认版本设置为2,ubuntu默认设置为wsl2
其实这一步可以不做,如果你能正常进入ubuntu的话,不过有的教程做了,保险起见吧,先把这两行在powershell管理员启动里面跑了再说
wsl --set-default-version 2 wsl.exe --set-version Ubuntu 2
-
systemctl命令启动
-
wsl安装的ubuntu里是没法用systemctl的,因为是init
WSL2 本身是由 Windows 负责运行的,因此使用 tree 或 ps 命令时会看到根进程不是 systemd,这将导致无法启动 Linux 系统服务的守护进程(deamon)。当我们执行 systemctl 命令的时候,会显示出我们的 init system (PID 1) 并非 systemd,而是微软提供的 /init。
-
太坑爹了是吧,别搜,听我的,现在网上一堆解决问题,其实已经outdated,因为微软已经解决了!
https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/
Systemd support is now available in WSL!
-
所以这事儿简单,听微软的
-
sudo创建文件:
/etc
-
-
-