Windows 子系统(WSL)搭建 Docker & K8s 环境
安装系统
开启 WSL 功能并安装分发版,按系统版本下载并安装 WSL 2 内核更新包: x64 & ARM641
2
3
4#官方可安装 WSL 分发版
wsl --list -o
#本地已安装 WSL 分发版
wsl --list -v
CentOS
适用于 Linux 的 Windows 子系统:CentOS
CentOS 8 停止维护,7 也会在 2024 年停止更新,可以安装一个 Debian
Debian
1 | wsl --install -d Debian |
安装 WSL 后,需要为新安装的 Linux 发行版创建用户帐户和密码;不能用 root。
安装完成以后,进行更新1
sudo apt update && sudo apt upgrade
开启 Windows 功能“虚拟机平台”,再通过 wsl --set-default-version 2
命令将 WSL 2 设置为默认版本1
2#切换指定分发的 WSL 版本
wsl --set-version Debian 2
Docker
下载安装
硬件满足条件且 WSL 2 已经安装并更新内核的机器,下载安装 Docker Desktop
直接运行
会自动创建两个 WSL 分发版:docker-desktop、docker-desktop-data,如果怕 Docker 镜像等占用系统盘存储空间,可以移动这两个分发版的存储位置
存储位置
推出 Docker Desktop 程序,任意位置右键,点击“在终端中打开”1
2
3
4
5
6
7
8
9
10
11
12
13#关闭所有分发版
wsl --shutdown
#查看分发版运行状态,确定全部为 Stopped
wsl -l -v
#备份 Docker Desktop 发⾏版数据到指定位置
wsl --export docker-desktop D:\WSL\Docker\Backup\docker.tar
wsl --export docker-desktop-data D:\WSL\Docker\Backup\docker-data.tar
#注销 Docker Desktop 发⾏版
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
#导入 Docker Desktop 发⾏版数据到指定位置,不要修改分发版名称
wsl --import docker-desktop D:\WSL\Docker D:\WSL\Docker\Backup\docker.tar --version 2
wsl --import docker-desktop-data D:\WSL\Docker\Data D:\WSL\Docker\Backup\docker-data.tar --version 2wsl --import
命令会在指定目录下创建对应的ext4.vhdx
文件,打开 Docker Desktop 客户端,查看该文件的修改时间是否更新为客户端的打开时间,是则表示修改成功。
General
使用 WSL 2,Use the WSL 2 based engine
设置最大内存
打开用户目录:%UserProfile%,新建 .wslconfig 文件1
2
3
4
5
6
7
8[wsl2]
memory=2GB
processors=2
swap=0
localhostForwarding=true
#然后重启 WSL 分发版
wsl --shutdown
Resources
Settings -> Resources -> WSL Integration -> Apply & Restart,这一步是开启 WSL 指定的分发版可以调用 Docker,如下所示:开启后 CentOS 分发版不用安装 Docker 就可以使用 Docker 命令
Docker Engine
Settings -> Docker Engine -> 替换为以下内容(修改或者删除 <你的ID>
所在条目) -> Apply & Restart1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"debug": true,
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://<你的ID>.mirror.aliyuncs.com"
],
"insecure-registries": []
}
Kubernetes
Settings -> Kubernetes -> ✔ Enable Kubernetes
-> Apply & Restart,安装 Kubernetes,关闭直接取消这个按钮的勾选
安装完成以后,橙色部分变绿,表示真在运行
运行 kubectl get nodes
返回如下也表示成功