Windows 11非专业版下WSL2与Docker配置教程及常见问题解决方案
Windows 11非专业版下WSL2与Docker配置教程及常见问题解决方案
Windows 11通过 WSL2(Windows Subsystem for Linux 2)和Docker的集成,可以为开发者提供强大的工具链,使得在Windows环境下进行Linux开发和容器化部署变得更加便捷。本文将详细介绍如何在Windows 11上配置WSL2和Docker,帮助你快速搭建一个高效、便捷的开发环境。
1. 安装Hyper-V(非专业版Windows11)
由于非专业版 Windows11 没有Hyper-V选项,需要安装Hyper-V。创建一个名为1.txt的文本文档,输入以下内容:
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
将文件后缀修改为.bat,并以管理员身份运行该文件。完成后关闭并重启电脑。
2. 系统设置
打开控制面板 -> 程序 -> 启用或关闭Windows功能,开启相关选项。
3. WSL设置
打开cmd命令行窗口,执行以下命令更新WSL版本到最新:
wsl --update
若更新进度缓慢,可以手动下载最新版进行安装。下载完成后双击打开即可安装。
以管理员身份运行windows power shell,输入以下命令选择WSL版本为WSL2:
# 将 WSL 默认版本设置为 WSL 2
wsl --set-default-version 2
4. 下载并安装发行版Ubuntu22.04
检查系统中是否已安装其他系统:
wsl -l -v
进入该链接进行下载。下载完成后直接双击打开进行安装。
5. 更新软件源和软件包
在开始菜单中打开Ubuntu即可运行Ubuntu。
先备份原来的软件源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
编辑软件源:
# 编辑软件源
sudo nano /etc/apt/sources.list
将原来的内容替换为:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
设置完成后保存并退出。
继续在Ubuntu命令行中执行以下命令:
# 更新软件源
sudo apt-get update -y
# 升级所有软件
sudo apt-get upgrade -y
即可完成软件更新。
6. Docker配置
在 Ubuntu 中执行以下命令:
sudo apt-get update # 更新内核
sudo apt-get install ca-certificates curl gnupg #安装依赖
导入 Docker 官方 GPG 密钥:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
添加Docker官方仓库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装docker:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
测试是否安装成功:
docker -v
运行docker:
sudo service docker start
# 然后拉取测试环境
docker pull hello-world
不出现报错即成功。
7. Docker拉取镜像报错解决办法
如果出现权限错误,可以添加docker的用户组:
#添加用户组
sudo groupadd docker
#将当前用户<username是你的用户名>添加至用户组
sudo gpasswd -a username docker
#更新用户组
newgrp docker
如果出现网络连接错误,可以配置镜像加速器:
sudo touch daemon.json
sudo nano daemon.json
写入以下内容:
{
"registry-mirrors" : [
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
保存后重启服务:
sudo service docker restart
重新拉取镜像:
docker pull hello-world
8. service与systemctl 命令报错问题
如果遇到systemctl命令报错,可以激活该命令:
ps -p 1
发现使用的是SysV init(sysvinit)初始化系统,可以通过以下步骤激活systemctl:
sudo nano wsl.conf
写入以下内容:
[boot]
systemd=true
保存后,运行:
wsl --shutdown
关闭wsl服务,再重新启动Ubuntu。
总结
本文详细介绍了在Windows 11(非专业版)上配置WSL2和Docker的全过程,并提供了常见问题的解决方案。如果有其他问题,欢迎在评论区留言讨论。
参考资料
- windows11 安装WSL2全流程
- windows11 搭建 WSL2 运行环境(2024)
- Windows安装 WSL2、Ubuntu 、docker(详细步骤 , 弃用 docker desktop )
- WSL(Windows Subsystem for Linux)安装、迁移D盘、设置默认登录账户、更改root密码和授予普通用户sudo权限
- Windows11 WSL中Llinux报错:System has not been booted with systemd as init system (PID 1). Can‘t operate