启动Windows Linux子系统
安装适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
启用“虚拟机平台”可选组件
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
设置WSL2为默认版本
wsl --set-default-version 2
下载Alpine Image
$VERSION="3.21.0"
$ARCH="x86_64"
wget -o alpine-minirootfs-${VERSION}-${ARCH}.tar.gz https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/releases/x86_64/alpine-minirootfs-${VERSION}-${ARCH}.tar.gz
Wsl导入Alpine Image
$INSTALL_PATH="alpine-minirootfs-${VERSION}-${ARCH}.tar.gz"
$ALPINE_IMAGE_PATH="D:\alpine-minirootfs-3.21.0-x86_64.tar.gz"
wsl --import alpine ${INSTALL_PATH} ${ALPINE_IMAGE_PATH}
启动Alpine
wsl -d alpine
安装 Docker
sed -i 's#https\?://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories
apk update && apk upgrade --no-cache
apk add --no-cache openrc docker docker-cli-compose
openrc sysinit
touch /run/openrc/softlevel
touch /etc/network/interfaces
rc-update add docker
Docker 开机启动
echo '''
# Add/Edit the [boot] command and save the file
[automount]
enabled=true
mountFsTab=true
root=/
[network]
generateHosts=true
generateResolvConf=true
hostname=docker
[interop]
enabled=true
appendWidnowsPath=true
[boot]
command = "/usr/bin/env -i /usr/bin/unshare --pid --mount-proc --fork --propagation private -- sh -c 'exec /sbin/init'"
''' > /etc/wsl.conf
echo '''
pid="$(ps -o pid,args | awk '$2 ~ /\/sbin\/init/ {print $1}')"
# Run WSL service script
if [ "$pid" -ne 1 ]; then
# Export ENV variables
if [ "$USER" != "root" ]; then
[ -f "$HOME/.openrc.env" ] && rm "$HOME/.openrc.env"
export > "$HOME/.openrc.env"
fi
exec /usr/bin/nsenter -p -m -t "${pid}" -- su - "$USER"
fi
# Import ENV variables
if [ -f "$HOME/.openrc.env" ]; then
set -a
source "$HOME/.openrc.env"
set +a
rm "$HOME/.openrc.env"
fi
''' > /etc/profile.d/wsl-init.sh
从Windows 访问Docker
TODO
https://wsl.dev/wsl2init/ https://zenn.dev/ignorant/articles/wsl2_alpine_docker#1.-wsl2-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9