尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Docker 拉取卡 1KB/s 怎么办:DaoCloud 公共镜像加速完整指南

Docker 拉取卡 1KB/s 怎么办:DaoCloud 公共镜像加速完整指南 Docker 拉取卡 1KB/s 怎么办DaoCloud 公共镜像加速完整指南【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror国内拉取海外 Docker 镜像慢到无法忍受DaoCloud 开源项目 public-image-mirror 只改一行地址前缀就能解决为内网环境提供稳定、可靠、安全的容器镜像加速服务。本文直接给结论、演示三种改地址的手法、给出 30 秒验证法和必须遵守的边界条件照着做即可。 结论先行三条路让拉取提速不需要代理、不需要改镜像内容只改镜像地址的写法。按推荐优先级加前缀推荐万能docker.io/library/nginx→m.daocloud.io/docker.io/library/nginx前缀替换地址更短docker.io/calico/cni→docker.m.daocloud.io/calico/cni客户端全局配置Docker 的registry-mirrors、Podman 的registries.conf一次配置全机生效边界提醒它是公共同步站不是官方仓库。生产环境落地前务必核对 tag 对应的 digest 与上游一致。 原理速览为什么只改前缀够用说白了它是个懒加载同步站你不拉它不抓你一拉它才从上游取数。因此所有 sha256 与源仓库保持一致版本一致性不用操心。关键缓存行为这些数字直接决定你踩什么坑项目时长直接后果Manifest 内存缓存1 小时上游更新 tag 后约 1 小时才同步新 manifestBlob 内存缓存1 分钟期间 blob 到达 30 天期限被删会瞬时报 404内容缓存保留期30 天过期后首次拉取需等重新同步会明显变慢还有一个硬前提白名单机制。只有 allows.txt 里列出的镜像才会被同步白名单外加限流兜底所以拉不到的第一嫌疑往往是镜像本身不在名单里而不是网络问题。 动手改三种地址改写手法手法一加前缀推荐适用所有场景版本标签一个字符都不用动只加前缀。before / after 对照docker.io/library/busybox→m.daocloud.io/docker.io/library/busyboxcalico/cni:v3.26.1→m.daocloud.io/docker.io/calico/cni:v3.26.1calico/node:v3.26.1→m.daocloud.io/docker.io/calico/node:v3.26.1gcr.io/...Google 源国内最慢的一档→m.daocloud.io/gcr.io/...YAML 里改image字段即可其余部署步骤完全不变。手法二前缀替换地址更短人工配置源站替换为备注docker.iodocker.m.daocloud.iogcr.iogcr.m.daocloud.ioghcr.ioghcr.m.daocloud.ioquay.ioquay.m.daocloud.iomcr.microsoft.commcr.m.daocloud.ionvcr.ionvcr.m.daocloud.ioregistry.k8s.iok8s.m.daocloud.iokubeadm 场景用这个k8s.gcr.iok8s-gcr.m.daocloud.io官方已迁移到 registry.k8s.iodocker.elastic.coelastic.m.daocloud.io注意每个源站内容不同不要把 docker.io 之外的站点配进 Docker 的registry-mirrors只对 docker.io 用客户端级镜像加速。手法三客户端全局加速Docker 写进/etc/docker/daemon.json改完执行systemctl restart docker生效{ registry-mirrors: [https://docker.m.daocloud.io] }Podman 写/etc/containers/registries.confrootless 模式用~/.config/containers/registries.conf并且 Podman 支持给 gcr.io、ghcr.io 等多源站分别配 mirror比 Docker 灵活。K8s 生态两个高频场景kubeadmClusterConfiguration里把imageRepository和dns.imageRepository设为k8s.m.daocloud.io/k8s.m.daocloud.io/corednskindkind create cluster --image m.daocloud.io/docker.io/kindest/node:v1.xx.x✅ 验证与边界最快验证方法30 秒分三步任何一步失败都能定位问题测通docker run -d -P m.daocloud.io/docker.io/library/nginx能起来说明链路通、速度可接受。对 digestdocker pull后docker image inspect 镜像看 RepoDigests与上游对比一致才算安全。查白名单本地 grep allows.txt 确认镜像在名单里404 时这是第一排查项。边界条件全部要遵守拉取建议放在凌晨闲时北京时间 01–07 点高峰期链路拥挤偶发超时属正常。tag 使用顺序sha256:digest 明确版本号 latest。latest 这类可变 tag 上游更新后要等约 1 小时才同步新 manifest期间新旧版本混着来。生产环境直接钉死明确版本号别让镜像站帮你漂移版本。 排障清单症状先查什么处置404 找不到 tag上游是否有该 tag镜像是否在 allows.txt 白名单都在则等懒加载重新同步稍后重试拉取超时或极慢是否处于高峰期换凌晨闲时重试或用sha256:固定内容避免反复重拉装出来版本对不上是否用了 latest 等可变 tag钉死明确版本号核对 digest偶尔 404、重试就好30 天保留期到期 Blob 1 分钟内存缓存窗口直接重拉触发重新同步 延伸内网离线与批量校验内网离线环境自建一层本地 registry 缓存代理把镜像站当上游细节见官方文档 docs/local-cache/README.md配好insecure-registries后用法与加前缀完全一样。镜像匹配校验仓库自带 hack/ 下的脚本verify-image-match.sh校验镜像地址改写格式、verify-allows.sh校验白名单命中批量迁移地址时可以复用。一条生产建议换前缀只解决拉不动解决不了拉错了。上线流程里固定加一步 digest 核对成本几分钟省掉一次事故。【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表