本文正在参加「金石方案」
欢迎关注我的大众号 [极智视界],获取我的更多经历共享
大家好,我是极智视界,本文介绍一下 win11 + wsl2 + docker + vscode 开发环境构建。
邀您参加我的常识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:t.zsxq.com/0aiNxERDq
开发方式其实有很多种,最常见的可能是 linux + ide
或者 linux + docker + ide
了,这儿的 w11 + wsl2 + docker + vscode
其实能够看成是 w11衍生出的linux + docker + ide
。
折腾了几天,写个教程经历共享一下。
一、装置w11
装置 w11 就不多说了,能够挑选u盘装置也能够直接软件装置。由于后面下载 wsl2 需求到Microsoft Store,所以需求激活一下以敞开 Microsoft Store 的悉数功能。不会windows激活的小伙伴能够在我的大众号「极智视界」内回复 windows激活
,能够获取到屡试不爽的简便的激活办法。
二、装置wsl2
首要确保虚拟化选项敞开,若未敞开,则进 BIOS 敞开。现在的机器一般都是默许敞开的,能够进 任务管理器 -> 性能
检查。
然后继续装备,翻开 控制面板->程序->启用或关闭 windows 功能
,敞开 Windows 虚拟化
和 Linux 子体系(WSL2)
以及 Hyper-V
,勾选完结后重启电脑。
以管理员翻开 PowerShell 终端履行如下指令:
bcdedit /set hypervisorlaunchtype auto
好,然后翻开 Microsoft Store,以装置 ubuntu 为例,则查找 ubuntu,会出来几个安稳版别,一般便是 ubuntu1804、ubuntu2004、ubuntu2204,挑选一个自己喜欢的进行装置就行。
发动 ubuntu 的时分装备用户名和密码,wsl 也内置了一些指令,能够检查状态、切换 wsl 版别、停止掉 wsl 等,比方若要检查 wsl 的默许版别,能够在 PowerShell 终端输入:
wsl -l --all
三、装置docker
这儿也是我”折腾”了几天的主要原因,按网上一些教程 –> 装置 Docker Desktop(软件)后,在 wsl2 中运用 docker 的方式,我在 docker run nvidia-docker 的时分就卡死了,试过一些所谓的文件io不跨体系、daemon.json装备、装置wsl-cuda-toolkit 以及 ubuntu1804/ubuntu20.04 中都不行。后来采用 wsl-cuda-tookkit + 抛弃Docker Desktop的方式成功,这种方式也便是直接在 wsl2 中经过指令行进行 docker 和 nvidia-docker 的装置。
这儿还会有一个坑,便是在 wsl 中就得用 wsl 的 cuda-toolkit,不能用我们平常用的 cuda-toolkit,否则在 run nvidia-docker 的时分同样会卡死。
下面说说我的办法。
首要去 NVIDIA 官网下载 wsl cuda-toolkit,官网下载地址:developer.nvidia.com/cuda-downlo…
比方我这儿挑选 cuda11.1.1 的版别,如下。
以装置 runfile
包为例,其实就两条指令:
# 下载包
wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run
# 装置
sudo sh cuda_11.1.1_455.32.00_linux.run
接着进行常规的 ubuntu 环境的 docker 装置方式进行。
# 卸载旧版别docker ==> 由于本身纯洁,履行不履行这条指令都不要紧
sudo apt remove docker docker-engine docker-ce docker.io
# 更新包
sudo apt update
# 装置以下包以使apt能够经过HTTPS运用存储库(repository)
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 增加docker官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 设置stable存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 再次更新apt包
sudo apt update
# 装置最新docker CE
sudo apt install -y docker-ce
# 装置nvidia-docker
# 增加源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 再次更新包
sudo apt update
# 装置
sudo apt install -y nvidia-container-toolkit
# 发动docker server
sudo service docker restart
这样,已经成功装置好并发动了 wsl2 中的支撑 GPU 调用的 docker 了,能够运用下面的指令测试:
docker run --rm --gpus all nvidia/cuda:11.1.1-devel-ubuntu18.04 nvidia-smi
这儿你如果报权限的错误,如:
permission denied while trying to connect to the Docker daemon socket xxx permission denied
==> 则能够把docker用户组参加sudo,或直接运用sudo docker指令
至此 wsl2 中的 docker 已经装置完结。
四、装备vscode长途
先把 wsl2 中的 openssh-server 给卸了,它预装的可能并不完好,我们重新装一下。
# 更新包
sudo apt update
# 卸载&重装openssh-server
sudo apt remove openssh-server
sudo apt install openssh-server
接下来需求装备 openssh-server,修正 sshd_config
文件:
# vim翻开sshd_config
sudo vim /etc/ssh/sshd_config
进入 sshd_config
后,需求修正的装备如下,自己找一下对应进行修正:
Port 3333 # 设置端口为3333
LoginGraceTime 120
StrictModes yes
PermitRootLogin yes # 答应root长途登录
PasswordAuthentication yes # 密码验证登录
拓宽一句,若想免密登录,则能够翻开
AuthorizedKeysFile .ssh/authorized_keys
,并将你的开发机器/宿主机的 id_rsa.pub >> authorized_keys,然后将宿主机的authorized_keys拷贝到wsl的 ~/.ssh下 ==> 不会的找我
修正结束后,保存退出 vim,重启 ssh 服务:
sudo service ssh --full-restart
需求留意的是,上面我们装备了 3333
端口,可是这个端口大概率是被 windows 防火墙阻拦的,那么怎样放开呢,按我说的做。
- 进入防火墙,顺次点击
高档设置 -> 入站规矩 -> 新建规矩
- 顺次点击
端口 -> 下一页 -> TCP -> 特定本地端口
- 在
特定本地端口中
输入我们刚才设置的 3333 端口,点击下一页
- 点击
答应连接 -> 下一页 -> 下一页
,最后填写称号 -> 完结
这样 ssh 环境就装备好了,我们能够用指令行 ssh 一下看能不能连上 wsl2,翻开 PowerShell,输入如下指令:
ssh username@ip -p 3333 # username和ip替换成你实际的
这样能登录上后,再回到 vscode 的长途就简略了,先装置好 vscode 的 remote-ssh 插件,然后翻开 config
装备:
Host wsl2_ubuntu18.04
HostName ip
User username
Port 3333
这样就大功告成了。
能够看到整个 win11 + wsl2 + docker + vscode
开发环境的装备过程其实涉及到挺多的常识点/技术点。其实,考虑文章可能篇幅过长,对于 wsl2经过Hyper-V固定ip、wsl2根目录迁移出c盘、docker根目录迁移,特别是vscode怎么长途到wsl2中的docker办法 (这儿是长途到了wsl2,还没到docker内) 等还没有介绍,可是这些只是 “锦上添花”,这些并不影响这儿的 win11 + wsl2 + docker + vscode 工具链开发环境的完好构建。
开发经历共享不宜篇幅过长,后面有机会再写写好了。
好了,以上共享了 win11 + wsl2 + docker + vscode开发环境构建,希望我的共享能对你的学习有一点协助。
【大众号传送】
《极智开发 | win11+wsl2+docker+vscode开发环境构建》
畅享人工智能的科技魅力,让好玩的AI项目不难玩。邀请您参加我的常识星球, 星球内我精心整备了大量好玩的AI项目,皆以工程源码形式敞开运用,涵盖人脸、检测、切割、多模态、AIGC、自动驾驶、工业等。不敢说会对你学习有所协助,但必定十分好玩,并继续更新愈加有趣的项目。 t.zsxq.com/0aiNxERDq