news 2026/4/23 13:41:56

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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,把时间省下来写业务代码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:53:28

Linly-Talker语音克隆功能详解:如何复制你的声音?

Linly-Talker语音克隆功能详解&#xff1a;如何复制你的声音&#xff1f; 在虚拟主播24小时不间断直播、AI客服精准回应用户需求的今天&#xff0c;我们早已不再满足于“能说话”的数字人——真正打动人心的&#xff0c;是那个拥有熟悉音色、仿佛就在身边的“数字化身”。而实现…

作者头像 李华
网站建设 2026/4/23 13:36:50

字节跳动Seed-OSS-36B大模型开源:512K超长上下文+可控推理

导语 【免费下载链接】Seed-OSS-36B-Instruct-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Seed-OSS-36B-Instruct-GGUF 字节跳动Seed团队正式开源360亿参数大语言模型Seed-OSS-36B&#xff0c;凭借512K超长上下文窗口和业内首创的"思维预算"…

作者头像 李华
网站建设 2026/4/20 7:42:46

Qwen3-8B-Base:三阶段训练的82亿参数模型

Qwen3-8B-Base作为Qwen系列最新一代大语言模型的重要成员&#xff0c;凭借三阶段预训练技术与32K超长上下文能力&#xff0c;在82亿参数级别树立了新的性能标杆。 【免费下载链接】Qwen3-8B-Base Qwen3-8B-Base具有以下特点&#xff1a; 类型&#xff1a;因果语言模型 训练阶段…

作者头像 李华
网站建设 2026/4/18 15:21:12

用Linly-Talker生成产品介绍视频,转化率提升显著

用Linly-Talker生成产品介绍视频&#xff0c;转化率提升显著 在电商页面上&#xff0c;一个30秒的讲解视频&#xff0c;可能比千字文案更能打动用户。而过去&#xff0c;制作这样的视频需要策划、拍摄、配音、剪辑一整套流程&#xff0c;成本高、周期长。如今&#xff0c;只需一…

作者头像 李华
网站建设 2026/4/18 2:40:56

IBM Granite-4.0-H-Small模型解析

IBM最新发布的Granite-4.0-H-Small模型以320亿参数规模和混合专家&#xff08;MoE&#xff09;架构&#xff0c;在企业级AI应用领域展现出强大潜力&#xff0c;尤其在多语言处理、工具调用和代码任务中表现突出。 【免费下载链接】granite-4.0-h-small-GGUF 项目地址: https…

作者头像 李华
网站建设 2026/4/19 1:50:44

Linly-Talker如何应对长文本生成中断问题?优化策略分享

Linly-Talker 如何应对长文本生成中断&#xff1f;优化策略深度解析 在数字人技术加速落地的今天&#xff0c;用户早已不再满足于简单的问答交互。从虚拟教师授课到企业数字员工宣讲&#xff0c;越来越多场景要求系统能够稳定输出长达数分钟甚至十几分钟的连贯讲解内容。然而&a…

作者头像 李华