当前位置: 首页 > news >正文

Docker Desktop 内置 K8s 拉取镜像失败?90% 的人踩的是同一个坑


1. 现象:本地明明有镜像,K8s 却非要去拉

把镜像docker build好,本地docker images也能看到,但一kubectl apply,Pod 事件里永远卡在:

Failed to pull image "myimg:1.0": rpc error: code = Unknown desc = failed to pull and unpack image ...

甚至直接ImagePullBackOff。科学上网、加代理、配加速器,全试一遍还是失败——于是开始怀疑人生。


2. 根因:Docker 和 K8s 用的是“两套仓库”

Docker Desktop 为了轻量,把 Kubernetes 的 kubelet 配置成containerd作为底层运行时,而不是 docker-shim。
关键区别:

你敲的命令实际操作的仓库
docker imagesDocker 的镜像仓库
kubectl applycontainerd 的镜像仓库

两者完全隔离
所以“docker 能看见” ≠ “K8s 能看见”。K8s 发现 containerd 里找不到,就只能去远端拉;拉不到就报错,于是出现“本地有镜像却拉取失败”的错觉。


3. 一句话解决方案

把镜像塞进 containerd 里,再让 YAML 里的名字 100% 对上,即可瞬间解决。


4. 实操 3 步走

① 验证镜像到底在哪
# Docker 仓库docker images|grepmyimg# containerd 仓库(Docker Desktop 专用命名空间叫 k8s.io)ctr -n k8s.io images list|grepmyimg

如果第二条没输出,说明镜像只在 Docker,K8s 看不见。

② 搬运镜像(二选一)

A. 离线导入(内网/CI 最常用)

docker save myimg:1.0|ctr -n k8s.io imagesimport-

B. 让 containerd 自己拉(能联网时最省事)

ctr -n k8s.io images pull myimg:1.0
③ 名字必须完全一致

ctr -n k8s.io images list打印出来的完整路径(可能是docker.io/library/myimg:1.0)原封不动写进 YAML:

image:docker.io/library/myimg:1.0

然后

kubectl apply -f deployment.yaml

Pod 瞬间Running,再也不会去网上拉了。


5. 常见疑问 FAQ

Q1:k8s.io是上传到官方仓库吗?
A:不是!它只是 Docker Desktop 给 containerd 起的本地命名空间,所有数据仍在你的硬盘,走不到外网。

Q2:为什么加了--image-pull-policy=IfNotPresent还是拉?
A:因为本地(containerd)根本没有,策略只能决定“有就省、没有必须拉”,治不了根。

Q3:我不想敲ctr,能不能让 K8s 直接用 Docker 的镜像?
A:Docker Desktop 的 K8s 已经固定用 containerd,改不了。真不想搬镜像,就回退到裸机 K8s 或用minikube docker-env那种共享 Docker daemon 的方案。


6. 结论

Docker Desktop 的 Kubernetes 只认containerd 的镜像仓库
以后遇到“本地有镜像却拉取失败”,先执行

ctr -n k8s.io images list|grep<你的镜像>

看不到就

docker save<镜像>|ctr -n k8s.io imagesimport-

30 秒解决战斗,别再盲目配代理、加速器、Secret,把时间省下来写业务代码。

http://www.jsqmd.com/news/117138/

相关文章:

  • Cogito v2 109B MoE:开源混合推理模型
  • 小米MiMo-Audio:音频大模型的少样本学习突破
  • Qwen3-Coder-480B:256K上下文代码模型登场
  • ByteFF2:量子力学驱动的通用力场模型
  • IBM Granite-4.0-H-Small模型解析
  • Magistral-Small-2509:24B多模态推理新选择
  • Gemma 3 270M QAT轻量文本生成模型:移动端AI应用新选择
  • 用Linly-Talker制作动漫角色配音?二次元内容创作革命
  • Linly-Talker在机场航班信息播报系统的应用设想
  • Palmyra-mini:数学推理能力突出的轻量模型
  • RLPR-Qwen2.5-7B:免验证器推理框架革新
  • Linly-Talker镜像支持Docker部署吗?容器化方案详解
  • 字节跳动Seed-OSS-36B大模型开源:512K超长上下文+可控推理
  • Linly-Talker在保险公司理赔指导中的应用实例
  • Linly-Talker能否接入物联网设备实现智能家居控制?
  • Qwen3Guard-Gen-4B:多语言三级安全防护模型
  • ChronoEdit-14B:物理感知的时序图像编辑
  • Gemma-3-270M:轻量级多模态模型新选择
  • Nitro-E:高效训练的304M图文扩散模型
  • Pony V7:AuraFlow角色生成模型详解
  • Linly-Talker镜像大小多少?下载安装耗时多久?
  • Linly-Talker支持字幕叠加功能吗?双语教学场景适用性验证
  • 用Linly-Talker生成产品介绍视频,转化率提升显著
  • Linly-Talker能否识别用户情绪并做出反应?情感交互进展
  • Linly-Talker部署常见问题汇总及官方解决方案
  • Linly-Talker能否用于法律咨询助手?律师团队试用反馈
  • 医疗健康领域新应用:Linly-Talker为远程问诊提供数字医生原型
  • Linly-Talker语音合成延迟低于800ms,实时交互无压力
  • Linly-Talker能否连接数据库实时查询信息?接口演示
  • Linly-Talker是否支持多人对话场景?技术可行性探讨