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

Windows Docker Desktop的Kubernetes出现ErrImageNeverPull错误如何解决

问题原因

ErrImageNeverPull错误的触发逻辑为:当容器配置imagePullPolicy: Never时,kubelet不会尝试从任何镜像仓库拉取镜像,只会使用调度节点本地已存在的镜像。从你提供的docker images输出可以看到,Deployment中声明的两个镜像thoughts_server:latest、thoughts_backend_db:latest不存在于本地镜像列表中,因此触发该错误。

解决方案(本地镜像使用场景)

  • 第一步:构建缺失的本地镜像
    分别进入两个服务对应Dockerfile所在的工作目录,执行镜像构建命令:
    构建后端服务镜像:
docker build -t thoughts_server:latest .

构建数据库镜像:

docker build -t thoughts_backend_db:latest .

注意:Windows版Docker Desktop默认将本地镜像共享给内置Kubernetes集群,只要使用Docker Desktop绑定的docker命令构建,镜像即可被K8s节点识别。如果启用了WSL2后端,请勿使用WSL环境中单独安装的docker服务构建,否则镜像会存储在WSL独立的运行时中无法被K8s读取。

  • 第二步:验证镜像存在
    执行命令确认两个镜像已成功构建:
docker images | findstr "thoughts"

能看到两条对应镜像的输出即为构建成功。

  • 第三步:重启Deployment触发Pod重建
    执行命令重启工作负载,让kubelet重新读取本地镜像:
kubectl rollout restart deployment thoughts-backend -n example
  • 第四步:验证Pod状态
    等待30秒左右执行命令查看Pod状态:
kubectl get pods -n example

正常情况下Pod会进入Running状态。

备选方案(使用镜像仓库场景)

如果你已经将对应镜像上传到公共/私有镜像仓库,可以直接修改Deployment配置:

  1. 将两个容器的imagePullPolicy改为IfNotPresent或者Always
  2. 将image字段的值修改为镜像仓库的完整地址
  3. 重新apply配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:06:03