public-image-mirror README

The project's README from github.com/DaoCloud/public-image-mirror. As one markdown file: README.md.

public-image-mirror

源仓库 Github
Mirror 仓库 Gitee

背景 & 目标

很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。

快速开始

docker run -d -P m.daocloud.io/docker.io/library/nginx

使用方法

增加前缀 (推荐方式)。比如:

              docker.io/library/busybox
                 |
                 V
m.daocloud.io/docker.io/library/busybox

或者 支持的镜像仓库 的 前缀替换 就可以使用。比如:

           docker.io/library/busybox
             |
             V
docker.m.daocloud.io/library/busybox

支持前缀替换的 Registry (不推荐)

推荐使用添加前缀的方式.

前缀替换的 Registry 的规则, 这是人工配置的, 有需求提 Issue.

这里每一个源站内容都是不同的, 不要把 docker.io 之外的站点配置给 docker 的 registry-mirrors

源站 替换为 备注
docker.elastic.co elastic.m.daocloud.io
docker.io docker.m.daocloud.io
dhi.io dhi.m.daocloud.io
gcr.io gcr.m.daocloud.io
ghcr.io ghcr.m.daocloud.io
k8s.gcr.io k8s-gcr.m.daocloud.io k8s.gcr.io 已被迁移到 registry.k8s.io
registry.k8s.io k8s.m.daocloud.io
mcr.microsoft.com mcr.m.daocloud.io
nvcr.io nvcr.m.daocloud.io
quay.io quay.m.daocloud.io
registry.ollama.ai ollama.m.daocloud.io 实验内测中,使用方法

最佳实践

部署内网缓存

本地缓存部署用于在内网环境中加速镜像拉取,减少对外网的依赖。通过设置一个本地镜像仓库,您可以缓存常用的镜像。 请参考文档

加速 Kubneretes

加速安装 kubeadm

apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
dns:
  imageRepository: k8s.m.daocloud.io/coredns
imageRepository: k8s.m.daocloud.io
...

加速安装 kind

kind create cluster --name kind --image m.daocloud.io/docker.io/kindest/node:v1.22.1

加速所有 Pod

https://github.com/wzshiming/repimage

不修改 yaml, helm 等, 仅使用 Webhook, 自动修改所有新建 Pod 的 image 使用本 mirror

kubectl create -f https://files.m.daocloud.io/github.com/wzshiming/repimage/releases/download/latest/repimage.yaml
kubectl rollout status deployment/repimage -n kube-system

加速 Containerd

加速 Docker

添加到 /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io"
  ]
}

加速 Podman

添加到 /etc/containers/registries.conf (rootless 模式也可以添加到 ~/.config/containers/registries.conf)

[[registry]]
location = "docker.io"

[[registry.mirror]]
location = "docker.m.daocloud.io"

与 Docker 不同, Podman 还支持为 docker.io 之外的 registry 配置 mirror, 例如:

[[registry]]
location = "gcr.io"

[[registry.mirror]]
location = "gcr.m.daocloud.io"

[[registry]]
location = "ghcr.io"

[[registry.mirror]]
location = "ghcr.m.daocloud.io"

[[registry]]
location = "quay.io"

[[registry.mirror]]
location = "quay.m.daocloud.io"

[[registry]]
location = "registry.k8s.io"

[[registry.mirror]]
location = "k8s.m.daocloud.io"

加速 Ollama & DeepSeek

加速安装 Ollama

CPU:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama docker.m.daocloud.io/ollama/ollama

GPU 版本:

  1. 首先安装 Nvidia Container Toolkit
  2. 运行以下命令启动 Ollama 容器:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama docker.m.daocloud.io/ollama/ollama

更多信息请参考:

加速使用 Deepseek-R1 模型(实验内测中)

如上述步骤,在启动了ollama容器的前提下,还可以通过加速源,加速启动DeepSeek相关的模型服务

注:目前 Ollama 官方源的下载速度已经很快,您也可以直接使用官方源。

# 使用加速源
docker exec -it ollama ollama run ollama.m.daocloud.io/library/deepseek-r1:1.5b

# 或直接使用官方源下载模型
# docker exec -it ollama ollama run deepseek-r1:1.5b

[友情链接]加速二剑客

贡献者

Made with contrib.rocks.

public-image-mirror (DaoCloud/public-image-mirror)

Searching Database…

这是什么?这是由DaoCloud提供的容器镜像仓库公共镜像服务,覆盖 gcr.io、ghcr.io、docker.io、quay.io 等仓库,主要为国内用户加速拉取镜像,因为这些仓库在国内访问较慢。
这是需要安装的工具,还是在线服务?这是一项在线托管的镜像服务(m.daocloud.io),无需安装;本仓库主要包含文档、配置列表和用于维护镜像服务的 CI 脚本。
我该怎么使用它?推荐的做法是在镜像名称前加上镜像前缀,例如用 gcr.m.daocloud.io 代替 gcr.io 拉取;对于 Docker、Podman 或 Kubernetes,也可以在 daemon.json 或 registries.conf 中配置仓库镜像。
使用这个镜像服务需要特殊的客户端或账号吗?不需要,直接使用你平常的 Docker、Podman、containerd 或 kubeadm/kind 等工具,并将其指向镜像域名或前缀即可,无需账号,也无需额外软件。
缓存里是否一定有我需要的镜像?缓存内容只保留 30 天,并会延迟重新同步。如果某个数据块在 1 分钟的数据块缓存与重新同步之间过期,就可能消失并返回 404。建议在闲时(北京时间凌晨 1 点至 7 点)拉取。
这个镜像服务主要面向谁?主要面向中国大陆的开发人员和运维团队,他们需要更快、更稳定地访问境外容器镜像仓库。
它镜像了哪些仓库?它镜像了多个主流仓库,包括 docker.io、gcr.io、ghcr.io、k8s.gcr.io/registry.k8s.io、mcr.microsoft.com、nvcr.io、quay.io,并实验性地支持 registry.ollama.ai。
镜像的哈希值或内容能保证与原始镜像一致吗?可以。文档说明它只会从源仓库镜像内容,并通过延迟加载机制,使所有 sha256 哈希值与原始镜像保持一致。
能用它加速 Ollama 和 DeepSeek 模型吗?可以,文档有专门章节介绍如何加速 Ollama 容器镜像的拉取(包括 CPU 以及 GPU/Nvidia Container Toolkit 环境),并实验性地支持通过 Ollama 加速 DeepSeek-R1 模型的下载。
我能否搭建自己的本地缓存,而不使用公共镜像服务?可以,README 中记录了部署内网镜像缓存的最佳实践,可以减少对外部网络的依赖。
能否不修改 YAML 就自动改写 Kubernetes 的所有 Pod 镜像?可以,文档提到了一种基于 webhook 的方法,可以自动将新建 Pod 的镜像地址改写为镜像服务地址,无需修改 manifest 或 Helm chart。
Creator
DaoCloud
Size
1.5 MB
Stars
15.2K
Updated
CommitOct 19
Age
5y
Commits · 90 Days