Win11 的 WSL2环境下配置 Docker Desktop 和 Minikube

1. 准备工作

  • 操作系统:Win11,建议保持系统更新
  • WSL版本:强烈建议使用 WSL2(性能和兼容性更好)
  • 推荐用 Ubuntu 20.04/22.04 作为 WSL 子系统

检查/安装 WSL2

在 PowerShell(管理员)运行:

wsl --install
wsl --set-default-version 2

如已安装可用 wsl -l -v 查看当前系统及版本。
如需升级已存在子系统至 WSL2:

wsl --set-version <Your-Distro-Name> 2

2. 安装 Docker Desktop

  1. 下载 Docker Desktop for Windows 官方安装包
  2. 安装过程中确保勾选“为 WSL2 安装 Docker” 选项
  3. 安装好后启动 Docker Desktop,务必在设置→资源→WSL integration,确保你用的 WSL 发行版已启用 Docker 集成(一般都自动勾选)

验证:在 WSL/Ubuntu 里直接执行 docker info 能看到 Docker 信息,表示已连通

在 WSL Ubuntu 中遇到域名解析失败(例如执行 sudo apt update 时出现 Temporary failure resolving 错误)是一个常见问题。其核心原因是 WSL 会自动生成并覆盖 /etc/resolv.conf 这个 DNS 配置文件,导致您自定义的 DNS 设置失效。

首先,您需要编辑或创建 /etc/wsl.conf 文件,告诉 WSL 不要自动管理 DNS。

sudo nano /etc/wsl.conf
  在文件中添加以下配置

[network]
generateResolvConf = false
  保存并退出编辑器。

手动配置 DNS 服务器 接下来,删除旧的 DNS 配置文件,并创建一个新的、静态的配置文件。 bash  # 删除可能存在的旧文件(包括符号链接)
sudo rm -f /etc/resolv.conf
  然后,创建新的 resolv.conf 文件并写入 DNS 服务器地址

sudo nano /etc/resolv.conf
  在文件中输入您选择的 DNS 服务器。最推荐使用您 Windows 主机中 WSL 虚拟网卡的 IP 作为 DNS 网关,这通常能获得最稳定的解析。您可以在 Windows PowerShell 中运行 ipconfig,找到名为 vEthernet (WSL) 的适配器,其 IPv4 地址 就是您需要的网关(例如 172.28.160.1)。

nameserver 172.28.160.1  # 请替换为您自己查到的 WSL 网关 IP
  或者,您也可以使用公共 DNS,例如:

nameserver 114.114.114.114  # 国内常用 DNS
nameserver 8.8.8.8          # Google 公共 DNS
  保存并退出。

重启 WSL 使配置生效 配置完成后,您必须完全重启 WSL 才能使更改生效

  • 在 WSL Ubuntu 终端中,输入 exit 退出。
  • 在 Windows PowerShell 或 CMD(以管理员身份运行)中,执行关闭命令: powershell  wsl –shutdown
  • 等待几秒后,重新启动您的 WSL Ubuntu 发行版。
  • 验证 DNS 解析 重新进入 WSL Ubuntu 后,首先检查配置是否已应用: bash  cat /etc/resolv.conf
      确认输出的 nameserver 是您设置的地址。然后,测试网络连通性: bash  ping www.baidu.com
      如果能够收到回复,说明域名解析已恢复正常。

3. 配置 kubectl

在 WSL/Ubuntu 执行:

sudo apt update
sudo apt install -y curl apt-transport-https
# 添加 Kubernetes 官方 key
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
# 添加 Kubernetes 源
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubectl

4. 安装 Minikube

建议用官方脚本:

bash

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin/
minikube version

5. 配置 helm

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm version

6. 启动 Minikube(WSL2 推荐用 docker driver)

minikube start --driver=docker

Tips:

  • Minikube 会用 Docker Desktop 的后端,不额外开虚拟机
  • 如需指定资源,如脚本要求的 cpu/memory:

    bash

    minikube start --driver=docker --cpus=6 --memory=10g
    

如果卡住/报错,先尝试 minikube delete 清理旧环境。


7. 校验

  • kubectl get node 应该能返回 minikube 节点
  • minikube dashboard 可以打开浏览器看到 Kubernetes Dashboard
  • 在 WSL 里运行 docker images 能看到镜像
  • 脚本用到的命令都在 PATH 里且运行无报错
posted @ 2026-01-30 17:14  张善友  阅读(16)  评论(0)    收藏  举报