本文基于WSL2及docker进行环境搭建
相关安装命令:
wsl --install
:默认安装Ubuntu发行版wsl --list --online
:查看可支持的发行版本wsl --install -d
:自定义安装想要的版本wsl --unregister
:注销或卸载指定Linux发行版wsl --setdefault
:设置默认启动和安装的发行版其它WSL命令参考链接
补充:如果觉得命令麻烦,可以在Microsoft Store中搜索Ubuntu安装WSL2 Ubuntu
笔者踩坑:笔者在使用命令行安装Ubuntu时,发现没法打开,即使重启多次仍然无用,在使用Microsoft Store安装Ubuntu时,出现错误,在启用或关闭Windows功能
中重新安装适用于Linux的Windows子系统
在开始菜单中打开安装的发行版(笔者这里是Ubuntu),第一次打开需要设置相关用户名和密码即可。
如果忘记密码,可以使用wsl -d ubuntu -u root进行指定发行版,使用passwd <用户名>
即可修改密码。
这里还可以设置发行版的wsl版本,通过wsl --set-version
设置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list
,删除原文件内容,可以直接输入49dd
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
sudo apt-get -y update && sudo apt-get -y upgrade
在VSCode中安装WSL2的扩展,笔者选择的是WSL,而非官网中推荐的Remote Development。
安装好后,即可在WSL2 Ubuntu中输入code .
命令,使用用本机上的VSCode打开WSL2中当前文件夹。
这里需要注意,如果需要支持代码智能提示、自动编译等功能,需要在每个WSL2中安装对应的插件,但是如VSCode的主题,只需要在本机上的VSCode上安装插件即可。
也就是说,VSCode将本地和远程(WSL2)上的插件分开,需要按需进行安装,如下图:
在WSL2中安装Docker有两种方式:
这里笔者因为不想在Windows本机上安装Docker,选择第二种方式
sudo apt install daemonize
sudo apt install -yqq fontconfig daemonize
sudo vim /etc/profile.d/00-wsl2-systemd.sh
# Create the starting script for SystemDvi /etc/profile.d/00-wsl2-systemd.sh
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
if [ -z "$SYSTEMD_PID" ]; then
sudo /usr/bin/daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
SYSTEMD_PID=$(ps -ef | grep '/lib/systemd/systemd --system-unit=basic.target$' | grep -v unshare | awk '{print $2}')
fi
if [ -n "$SYSTEMD_PID" ] && [ "$SYSTEMD_PID" != "1" ]; then
exec sudo /usr/bin/nsenter -t $SYSTEMD_PID -a su - $LOGNAME
fi
sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
### 添加 Docker apt 仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update && sudo apt-get install containerd.io docker-ce docker-ce-cli -y
sudo mkdir /etc/docker && vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/", "https://hub-mirror.c.163.com/", "https://reg-mirror.qiniu.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
sudo mkdir -p /etc/systemd/system/docker.service.d
从官网下载docker desktop即可,安装时勾选WSL2即可在WSL2中使用docker
这里可以直接基于docker-compose启动项目,这里配置的docker国内镜像源如下:
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com/",
"https://reg-mirror.qiniu.com"
]
在Docker Desktop中修改镜像源的方式如下图:
构建项目:docker-compose build
启动项目:docker-compose up -d
为了方便管理多个python版本,这里在WSL2中基于miniconda构建整个项目
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
conda create --name vced python=3.9 -y
conda activate vced
sudo apt install rustc ffmpeg -y
pip install git+https://github.com/openai/CLIP.git
cd code/service
pip install -r requirements.txt
python app.py
cd code/web
pip install -r requirements.txt
streamlit run app.py
访问localhost:8501即可,最终效果如下图: