> 技术文档 > 在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)


言简意赅的讲解Docker Desktop for Windows搭建Kubernetes解决的痛点

目标读者

  • 对 Docker Desktop 有一定了解,能在 Windows 上成功安装和使用 Docker Desktop。
  • 想要在本地快速搭建一套 Kubernetes 环境进行测试或学习的开发者。

一、准备工作

  1. 安装 Docker Desktop for Windows

    • 如果尚未安装,请从 Docker 官网 下载并安装 Docker Desktop for Windows。
    • 注意必须在 Windows 10(家庭版以上)或者 Windows 11,以及开启 Hyper-V 或者 WSL2 功能(具体可参考 Docker 官方文档进行配置)。
  2. 确保可以访问 Docker Hub

    • Docker Desktop 在启用 Kubernetes 时,会自动拉取所需的 Kubernetes 相关镜像。由于镜像较大,且有可能存在网络限制,建议根据自身网络环境配置科学上网工具,确保镜像能够顺利下载。
  3. 初始 Docker Desktop 设置

    • 在不启用 Kubernetes 的情况下,先启动并配置好 Docker Desktop,以确保 Docker 能正常工作。
    • 打开 Docker Desktop,在右上角齿轮图标中可以进行必要的配置(如 CPU、内存限制等),以免在启用 Kubernetes 后出现资源不足问题。

二、启用 Kubernetes

  1. 打开 Docker Desktop,进入“Settings”

    • 点击右上角齿轮图标,或在任务栏图标上右键选择 “Settings”。
  2. 选择“Kubernetes”选项卡

    • 在左侧菜单中找到 “Kubernetes”,勾选 “Enable Kubernetes”。
  3. 等待 Kubernetes 启用

    • 点击 “Apply & Restart” 之后,Docker Desktop 会重启自身并拉取 Kubernetes 所需的镜像。
    • 注意:这一步可能会耗费比较长的时间,请耐心等待。如果网络环境无法连接镜像仓库,需要配置合适的科学上网工具。
    • 启用完成后,Docker Desktop 左下角会出现 “Kubernetes running” 的状态提示。

温馨提示:如果由于网络问题导致一直无法下载镜像,可以尝试使用官方或第三方镜像加速器,这会大大提升拉取速度。

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)


三、初识 Kubernetes:不修改 hosts、无需安装额外 kubectl

Docker Desktop 自带了 kubectl 命令行工具,无需用户额外安装,因此后续所有 Kubernetes 命令均可直接在命令行(如 PowerShell、CMD 或 Windows Terminal)中使用。

此外,Docker Desktop 的 Kubernetes 环境默认没有安装 Ingress Controller,所以我们暂时不涉及到域名配置,也不需要去修改本机的 hosts 文件。


四、基础部署演示

下面我们来做一个最常见的 Kubernetes 上的示例:部署一个 Nginx 应用。演示如何使用 Deployment 和 Service。

1. 验证 Kubernetes 环境是否可用

在 PowerShell 或 CMD 中输入:

kubectl get nodes

若正确返回一个名为 docker-desktop 的节点(Status 为 Ready),就表示 Kubernetes 已经正确启用并可用。

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)

2. 创建 Deployment

我们可以直接用命令行创建一个 Nginx Deployment。示例如下:

kubectl create deployment nginx-deployment --image=nginx:latest
  • 这条命令会告诉 Kubernetes 创建一个名为 nginx-deployment 的 Deployment,并且使用 nginx:latest 镜像来拉起 Pod。
  • 创建完成后,可以通过下面命令查看部署情况:
kubectl get deploymentskubectl get pods

如果看到 nginx-deployment 在运行,同时有对应的 Pod 状态为 Running,就说明 Deployment 已经生效。

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)

3. 创建 Service

虽然 Deployment 已经在 Kubernetes 内部运行,但我们需要暴露这个服务才能从本地访问。最简单的方式是创建一个 NodePort 类型的 Service,示例如下:

kubectl expose deployment nginx-deployment \\ --type=NodePort \\ --port=80
  • --type=NodePort 会在 Kubernetes 节点上随机选择一个30000-32767之间的端口,用于映射到容器内部的 80 端口。
  • 创建后,我们同样可以查看 Service:
kubectl get service

可以看到一个名为 nginx-deployment 的 Service,并在 PORT(S) 栏显示类似 80:30294/TCP (具体端口可能不同)。这就意味着,我们可以通过 Docker Desktop 提供的本地 Kubernetes 节点的 IP(一般是 127.0.0.1 结合 nodePort),或者通过 Docker Desktop 路由来访问这个 Nginx。

如果要在宿主机上访问,最简单的方式是:
http://localhost:

例如,如果 NodePort 为 30294,则访问 http://localhost:30294,即可看到 Nginx 的默认欢迎页。

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)
在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)


五、查看和管理 Kubernetes 资源

  1. 查看 Pod 详情
kubectl describe pod <pod-name>
  • 这条命令可以深入查看某个 Pod 的状态、事件日志、容器的启动参数等,便于排查问题。
  1. 日志查看
kubectl logs <pod-name>
  • 如果想查看日志,可以使用 kubectl logs 命令,后面加上 Pod 名称或者加 -f 进行实时查看。
  1. 伸缩(Scaling)示例
kubectl scale deployment nginx-deployment --replicas=3
  • 通过上面命令,可以让 Nginx 的副本数变为 3 个。再次查看 Pods,即可发现 3 个副本同时运行。
  1. 删除资源
kubectl delete service nginx-deploymentkubectl delete deployment nginx-deployment
  • 如果你想删除刚才创建的 Service 和 Deployment,可以使用 kubectl delete 命令,后面跟资源类型和名称即可。

六、Docker Desktop Kubernetes 与 Ingress Controller

在原生 Kubernetes 中,常见的对外暴露服务方式除了 Service Type=NodePort/LoadBalancer,还可以通过 Ingress 来灵活管理域名和路径。但需要注意,Docker Desktop 自带的 Kubernetes 环境默认没有安装 Ingress Controller,因此如果你想体验 Ingress 功能,就必须自行安装 Nginx Ingress Controller 或者其他第三方 Ingress Controller。

这里我们就不深入介绍 Ingress 的详细配置和安装,仅提示一下在本地实验环境下的可能性:

  • 如果确实需要测试 Ingress,可以自己通过 helm 或 yaml 手动安装 Nginx Ingress Controller:
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.9.1/deploy/static/provider/cloud/deploy.yaml

    不过,执行成功与否取决于你的网络环境和资源配置,需要保证能够访问相关镜像仓库。

  • 由于 Ingress 涉及到域名解析与路由规则,因此在本地测试时可能要额外配置 hosts 文件、使用自定义域名等。若纯粹是想快速上手 Kubernetes,可以暂时不必折腾这部分内容。

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)


七、总结

  1. Docker Desktop for Windows 提供了一个非常便捷的本地 Kubernetes 环境,适合开发者做快速验证、个人学习和小型测试。
  2. 在启用 Kubernetes 前,一定要确保网络环境良好,以免拉取镜像时间过长导致卡顿或失败。
  3. 在基本部署一个 Deployment + Service 后,可以体验 Kubernetes 的核心概念:Pod、ReplicaSet、Service、Resource Management、Scale、Logs 等。
  4. Ingress 等更高级功能需要额外安装对应的组件(Ingress Controller),而 Docker Desktop 默认并未集成。
  5. 整个过程中,无需手动安装 kubectl 工具,无需手动修改 hosts 文件,更加简化了本地 K8s 的初体验。

通过上述流程和示例,你可以初步感受到 Kubernetes 在本地环境下的运行和管理方式。如果想继续深入学习,可以关注如下方向:

  • Kubernetes 基础概念:Pod、Volume、ConfigMap、Secret、DaemonSet、StatefulSet 等。
  • Kubernetes 进阶:Helm、Operator、CICD 流程整合、监控与日志体系(Prometheus、Grafana、EFK 等)。
  • 云上 Kubernetes:在云环境中体验更完整的 Kubernetes 生态。

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)


附:常用命令速查表

命令 说明 kubectl get nodes 查看所有节点 kubectl get deployments 查看所有 Deployments kubectl get pods 查看所有 Pods kubectl get service 查看所有 Services kubectl describe deployment 查看某个 Deployment 详细信息 kubectl describe pod 查看某个 Pod 详细信息 kubectl logs 查看 Pod(容器)的日志 kubectl scale deployment --replicas=n 扩容/缩容 Deployment 副本数量 kubectl delete service 删除某个 Service kubectl delete deployment 删除某个 Deployment

结语

在本地通过 Docker Desktop for Windows 运行 Kubernetes,是初学者和开发者快速上手 K8s 的最佳途径之一。它大幅简化了安装和配置流程,而且不需要额外的硬件或云服务。


通过上述内容,你就已经基本理解了这个方法,基础用法我也都有展示。如果你能融会贯通,我相信你会很强

Best
Wenhao (楠博万)