You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无直接互联网访问时Docker Desktop中Kubernetes启动失败如何解决

Kubernetes启动失败排查与离线部署方案

第一步:获取错误日志

  • Windows本地日志路径:打开资源管理器访问 %LOCALAPPDATA%\Docker\log\vm,目录下前缀为kube的日志文件(如kubelet.log、kube-apiserver.log)记录了Kubernetes核心组件的运行报错,可直接查看镜像拉取、组件启动类的异常。
  • WSL2虚拟机内日志获取:执行以下命令可直接读取容器运行时日志:
    wsl -d docker-desktop cat /var/log/kubelet.log

第二步:离线环境自定义镜像源配置

你使用的Docker Desktop 3.6.0配套Kubernetes版本为v1.21.3,可通过以下两种方式解决镜像拉取问题,全程无需管理员权限:

方案1:通过自有Nexus仓库代理拉取

  1. 在你的Nexus仓库中创建k8s.gcr.io的代理仓库,同步所有Kubernetes v1.21.3版本依赖的镜像,完整依赖列表可通过联网环境执行以下命令获取:
docker run --rm -it k8s.gcr.io/kubeadm:v1.21.3 config images list
  1. 打开Docker Desktop设置界面,进入「Docker Engine」配置页,在daemon.json的registry-mirrors数组中添加你的Nexus仓库地址,保存后重启Docker Desktop。此时所有对k8s.gcr.io的镜像拉取请求会自动转发到你的Nexus代理仓库。

方案2:手动导入镜像

如果无法配置Nexus代理,可手动导入提前准备好的镜像:

  1. 在联网环境拉取所有Kubernetes依赖镜像后,执行导出命令:
docker save k8s.gcr.io/kube-apiserver:v1.21.3 k8s.gcr.io/kube-controller-manager:v1.21.3 k8s.gcr.io/kube-scheduler:v1.21.3 k8s.gcr.io/kube-proxy:v1.21.3 k8s.gcr.io/pause:3.4.1 k8s.gcr.io/etcd:3.4.13-0 k8s.gcr.io/coredns/coredns:v1.8.0 > k8s-v1.21.3-images.tar
  1. 将导出的tar包拷贝到工作机器,执行导入命令:
    docker load -i k8s-v1.21.3-images.tar
  2. 导入完成后重启Docker Desktop,重新开启Kubernetes功能,平台会优先使用本地已存在的镜像,无需联网拉取。

第三步:验证启动结果

启动完成后执行kubectl get nodes,如果返回节点状态为Ready即部署成功。

内容的提问来源于stack exchange,提问作者Hollerweger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:36:04