一行指令,Win11即刻化身Linux开发天地

1个月前发布 gsjqwyl
24 0 0

一行指令,Win11秒变Linux开发乐园

各位好呀,我是六哥,今天来跟大家分享,只需要一行命令,就能让Win11拥有原生的Linux系统使用体验哟!

本文以真实操作作为例子,带大家一步步解决常见问题,轻松搭建好WSL+Docker环境呢。

一、通过一行命令开启Windows子系统Linux(WSL)

在管理员权限的PowerShell中输入下面这条命令:

wsl --install

接着就等着系统自动安装WSL(Windows子系统Linux)还有默认的Ubuntu发行版啦。要注意哦,安装过程可能得花10到30分钟呢,这期间得保证网络是畅通的

要是你有喜好选择的问题,那可以先看看有哪些可用的发行版,输入下面这条命令:

wsl --list --online

这里会把可用的支持列表列出来,大家可以自己挑选
image

那我就安装Ubuntu啦,输入下面这条命令:

wsl --install --web-download

其实选哪个就看自己喜好啦,简单来说够用就行。

安装成功啦
image

有一点得说一下,第一次启动的时候会提示设置账号密码哟

二、安装卡住了咋办?

有时候进度条老长时间停在某个百分比,比如说28%,别慌哈:

可以按Ctrl+C把安装给终止掉,重启电脑之后再运行wsl --install命令。要是还是卡住的话,就手动启用WSL还有虚拟机平台功能,输入下面这两条命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

然后重启电脑,接着再安装就行。

三、WSL安装好之后,怎么进入Linux呢?

安装完之后,直接在开始菜单或者终端里选“Ubuntu”就能进入Linux环境啦。这时候你就有一个原生的Linux终端啦!

image

四、怎么停止或者管理WSL呢?

停止所有的WSL实例,输入:

wsl --shutdown

停止指定的发行版,比如停止Ubuntu,就输入:

wsl --terminate Ubuntu

查看所有的发行版,输入:

wsl --list -v

五、为啥会有好几个Ubuntu?怎么只留一个呢?

有时候用wsl --list -v会显示好几个Ubuntu。这可能是重复安装或者版本不一样导致的。可以用下面这条命令删掉多余的发行版,比如删掉Ubuntu-20.04:

wsl --unregister Ubuntu-20.04

只保留你需要的那一个就可以啦。

六、怎么在WSL里安装Docker呢?

1、更新源并且安装依赖

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

2、添加Docker官方源还有密钥

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3、再次更新软件包索引,安装Docker Engine

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4、启动Docker服务

sudo service docker start

5、测试Docker

sudo docker run hello-world

效果
image

七、Docker拉取镜像超时了咋办?(需要走梯子)

1. 现象

运行sudo docker run hello-world的时候,报错:

docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded

这就说明Docker没法访问外网啦。

2. 解决思路

得让WSL和Docker都能走代理(比如说Clash、v2rayN这类的)。

3. 以v2rayN为例的详细配置

开启“允许来自局域网的连接”
在v2rayN的设置里,一定要勾选“允许来自局域网的连接”,不然WSL没法访问代理端口哟。
image

获取Windows主机IP
在WSL里运行:

cat /etc/resolv.conf

记下nameserver后面的IP,比如说172.21.64.1

设置WSL代理环境变量
假如说HTTP代理端口是10809,就输入:

export http_proxy="http://172.21.64.1:10809"
export https_proxy="http://172.21.64.1:10809"

要是用Socks5代理,端口一般是10808,格式就是:

export http_proxy="socks5h://172.21.64.1:10808"
export https_proxy="socks5h://172.21.64.1:10808"

为Docker守护进程配置代理
编辑/etc/systemd/system/docker.service.d/http-proxy.conf,内容如下(以HTTP代理为例):

[Service]
Environment="HTTP_PROXY=http://172.21.64.1:10808/"
Environment="HTTPS_PROXY=http://172.21.64.1:10808/"

然后重载并且重启Docker:

sudo systemctl daemon-reload
sudo service docker restart

再次测试Docker拉取镜像

sudo docker run hello-world

要是一切顺利的话,应该就能看到Hello from Docker的提示啦!

image

八、常见问题排查

curl能通但docker不通?

这就说明WSL代理设置没问题,但是Docker守护进程代理没配置好,检查一下配置文件还有端口就行。
image
image

connect refused?

这就说明v2rayN没开“允许局域网连接”或者端口号不对啦。

端口号不确定?

就以v2rayN设置页面显示的为准,HTTP和Socks5端口可别弄混啦。

九、总结

只需要一行命令,Win11就能有原生的Linux环境啦。碰到网络、代理、Docker这些问题的时候,按照本文的方法一步步排查还有配置,开发、测试、运维的时候,都能轻松用上高效的Linux环境哟!

要是你在操作过程中碰到别的问题,欢迎留言交流哈!

© 版权声明

相关文章

没有相关内容!

暂无评论

none
暂无评论...