WSL
参考链接
玩转 Windows 自带的 Linux 子系统
win10利用WSL2安装docker的2种方式
WSL安装配置
启动本地
-
win+s
,搜索 PowerShell,右键管理员身份运行
-
输入命令,启用
适用于Linux的Windows子系统
功能:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
下载并安装WSL
-
选择版本:
旧版 WSL 的手动安装步骤 | Microsoft Learn
。或者可以直接在微软商店下载。不过微软商店默认安装在C盘。(
自定义WSL的安装位置
)
-
下载完是
.appx
后缀的文件,将其后缀改成
.zip
并放到要安装的路径,然后解压。(
Windows10/11 三步安装wsl2 Ubuntu20.04(任意盘)
)
-
解压完后运行exe文件,即可将WSL安装到当前路径。
-
需要注意的是安装目录的磁盘不能开
压缩内容以便节省磁盘空间
选项,否则会报错。可以右键
文件夹-->属性-->常规-->高级
找到并关闭这个选项。
-
以上几个步骤可以用以下命令来进行(下载好像会比较快):
-
下载(下面给的是20.04)
-
改后缀
-
解压
-
安装
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing
Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose
cd .\Ubuntu\
.\ubuntu2004.exe
WSL设置账号密码
-
安装完在命令行直接设置
-
有时候错过了,就重新设置一下(
Windows下WSL的root密码忘记解决办法
)
-
每次进入root都需要输入密码,可以设置一下某个用户进入不需要密码:
sudo echo "damonzheng ALL=(ALL:ALL) NOPASSWD: ALL" >>/etc/sudoers
WSL路径
-
windows10 Linux子系统(wsl)文件目录
-
WSL 1的路径:
C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
-
WSL 2的路径:被映射到
\\wsl$
。在文件夹上面的搜索栏输入
\\wsl$
即可
多个版本选择
-
查看当前有多少个wsl:
wsl -l -v
-
进入某个wsl:
wsl -d 版本
-
查看ubuntu版本:
cat /proc/version
Docker与Anaconda
Docker安装
运行以下命令:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo service docker start
检查docker安装正常:
service docker status
ps aux|grep docker
镜像拉取与容器运行1
-
拉一个镜像(这边从官网拉):
docker pull ubuntu
(会自动拉取最新的ubuntu,当然也可以指定版本号)
-
运行容器:
docker run -it --name damonzheng ubuntu bash
-
安装一些必要的工具:
apt-get update
apt-get install vim
apt-get install ssh
Anaconda安装
anaconda官网下载,链接:
Free Download | Anaconda
直接复制链接,到Linux中下载即可。注意要把目录切换到
/opt
中(
Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
):
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
下载太慢的话可以用清华源:
清华大学开源软件镜像站
如果是在linux中直接下载的,可以拷贝到docker容器的opt里面再安装。拷贝命令:
docker cp /opt/Anaconda3-2023.09-0-Linux-x86_64.sh damonzheng:/opt
开始安装。
sh Anaconda3-2023.09-0-Linux-x86_64.sh
注意:
-
一直按enter,其中有一个是否接收license记得输入
yes
-
安装路径好像不是默认在放
Anaconda3-2023.09-0-Linux-x86_64.sh
的地方,所以其中还有一步要选择安装路径的,可以用:
/opt/anaconda3
-
是否初始化也要选
yes
如果改变了默认安装路径的话,初始化好像是不会成功的,所以需要自己添加环境变量(
Anaconda 多用户共享安装(Ubuntu)
):
-
编辑文件:
vim /etc/profile
-
在文件末尾添加:
export PATH=/opt/anaconda3/bin:$PATH
-
命令行更新一下:
source /etc/profile
虚拟环境配置
假设要配置一个名为
dev
的环境,并且在里面安装
pytorch
-
创建虚拟环境:
conda create -n dev python=3.8
-
激活环境(最新版的conda好像没有activate,所以只能用source):
source activate dev
-
安装cpu版本的torch(用清华源):
pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
(如果要下载gpu版本的需要用别的命令)
容器提交与镜像上传
-
容器提交:
docker commit damonzheng damonzheng_image:v1
。可以看看
docker commit
和
docker build
的区别:
docker commit 和docker build
-
镜像上传:可以将镜像传到线上平台,之后换机器就不需要重新配环境,可以直接使用。参考链接:
docker使用与镜像提交
镜像拉取与容器运行2
-
镜像拉取:从平台将别人的,或者自己保存的镜像拉下来。参考链接:
docker使用与镜像提交
-
容器运行:
docker run -it -p 4611:22 -v /mnt:/mnt --name damonzheng damonzheng_image:v1 bash
-
-p
是端口映射:
-p 主机端口:容器端口
-
-v
是数据卷映射:
-v 主机目录:容器目录
-
因为WSL2数据默认是
/mnt
跟windows映射的,所以docker容器映射到linux的
/mnt
就可以读到windows的磁盘了。这样,数据代码都可以放在本地主机,docker只当环境使用。
连接vscode
vscode连接wsl
只要在vscode下载插件wsl,然后把远程资源管理器从
远程(隧道/SSH)
改成
WSL 目标
即可。做了数据映射其实没必要连到容器里了,直接连wsl就可以了。
如果要连到容器里的话。可以参考连接远程服务器上的docker
vscode连接远程服务器上的docker容器
在容器中运行以下命令:
apt-get update
apt-get install openssh-server
apt-get install openssh-client
apt-get install ssh
apt-get install vim
接着修改ssh的配置文件(注意端口号):
vim /etc/ssh/sshd_config
#填加以下内容:
Port 60011 # 要跟容器创建时留出来的端口号一样
PermitRootLogin yes #允许root用户使用ssh登录
重启ssh服务:
/etc/init.d/ssh restart
添加root密码:
passwd
退出容器,做连接测试:
ssh root@127.0.0.1 -p 60011
在VSCode中的ssh添加以下配置:
Host ******
HostName 192.168.**.**
User root
IdentityFile C:\Users\***\.ssh\vscode.key
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -q -W %h:%p jumpserver
Port 60011
要注意其中
User
是
root
,且端口号要添加,一般IdentityFile和ProxyCommand是不需要的(反正实验室用的不需要(如下),公司的要)。
Host ******
HostName 192.168.**.**
User znr
在连接的时候要输入的密码就是在配置容器的
passwd
设置的。