systemd安装
这一步主要是为了让systemctl可用
apt install -yqq fontconfig daemonize
创建脚本:sudo vi /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 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
systemd开启
首先将wsl升级到最新版(win store下载的不是最新)
wsl --shutdown
wsl --update
参考官方文档wsl官方文档配置/etc/wsl.conf
[boot]
systemd=true
安装docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
设置开机启动WLS2、并启动docker
- 打开“任务计划程序”应用程序。你可以在开始菜单中搜索“任务计划程序”以打开它。
- 在左侧面板中,选择“任务计划程序库”。
- 在右侧面板中,右键单击空白区域,选择“创建任务”。
- 在“常规”选项卡中,输入任务的名称和描述。
- 在“触发器”选项卡中,选择“新建”,然后设置任务的触发条件。例如,你可以设置在用户登录时启动任务。
- 在“操作”选项卡中,选择“新建”,然后设置任务要执行的操作。在“程序/脚本”框中输入以下命令:
wsl -d Ubuntu -u root sh -c "/etc/init.d/docker start"
#其中Ubuntu为WSL2实例名