本文基于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即可,最终效果如下图:
Docker Desktop默认安装到C盘,且无法在安装时自定义安装路径,因此这里讲述如何迁移Docker Desktop,这里为了避免意外,选择重装Docker Desktop,当然,参考链接给了不重装修改路径的方式,笔者未尝试。
注:这里只参考了链接中修改安装路径的步骤,其中修改镜像路径的方式是另外的步骤。
在安装之前,首先需要创建Docker Desktop即将安装的实际路径,如D:/Program Files/Docker
,然后执行如下命令(注意在命令行中以管理员方式启动):
mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker"
然后正常安装Docker Desktop即可。
这里Docker是以WSL2的形式出现的,其中包括两个部分,分别是:
因此笔者只迁移了docker-desktop-data,如需迁移docker-desktop,操作步骤同docker-desktop-data,具体如下:
wsl --export docker-desktop-data "D:\Program Files\Docker\docker-desktop-data.tar"
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data "D:\Program Files\Docker\data" D:\Program Files\Docker\docker-desktop-data.tar --version 2
重新运行Docker Desktop,确保无误即可删除备份文件