问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Windows 11非专业版下WSL2与Docker配置教程及常见问题解决方案

创作时间:
作者:
@小白创作中心

Windows 11非专业版下WSL2与Docker配置教程及常见问题解决方案

引用
CSDN
1.
https://blog.csdn.net/th4028/article/details/145966708

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
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号