自建 Docker 镜像代理彻底解决 Docker pull 失败问题

教程1个月前更新 总线
221 0 0

Docker仓库镜像代理工具

这是一个 Github 项目,其基于 Cloudflare Workers 的 Docker 镜像代理工具。能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制加速访问的问题。

Demo

链氪镜像:https://docker.linkedbus.com

部署方式

如何使用?

例如您的 Workers 项目域名(或自定义域名)为:https://docker.linkedbus.com ;

1.官方镜像路径前面加域名

docker pull docker.linkedbus.com/stilleshan/frpc:latest
docker pull docker.linkedbus.com/library/nginx:stable-alpine3.19-perl

2.一键设置镜像加速

修改文件 /etc/docker/daemon.json(如果不存在则创建)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.linkedbus.com"]  # 请替换为您自己的Worker自定义域名
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 配置常见仓库的镜像加速

3.1 配置

Containerd 较简单,它支持任意 registry 的 mirror,只需要修改配置文件 /etc/containerd/config.toml,添加如下的配置:

    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
          endpoint = ["https://xxxx.xx.com"]

Podman 同样支持任意 registry 的 mirror,修改配置文件 /etc/containers/registries.conf,添加配置:

unqualified-search-registries = ['docker.io', 'k8s.gcr.io', 'gcr.io', 'ghcr.io', 'quay.io']

[[registry]]
prefix = "docker.io"
insecure = true
location = "registry-1.docker.io"

[[registry.mirror]]
location = "docker.linkedbus.com"

[[registry]]
prefix = "k8s.gcr.io"
insecure = true
location = "k8s.gcr.io"

[[registry.mirror]]
location = "docker.linkedbus.com"

[[registry]]
prefix = "gcr.io"
insecure = true
location = "gcr.io"

[[registry.mirror]]
location = "docker.linkedbus.com"

[[registry]]
prefix = "ghcr.io"
insecure = true
location = "ghcr.io"

[[registry.mirror]]
location = "docker.linkedbus.com"

[[registry]]
prefix = "quay.io"
insecure = true
location = "quay.io"

[[registry.mirror]]
location = "docker.linkedbus.com"

3.3 使用

对于以上配置,k8s在使用的时候,就可以直接pull外部无法pull的镜像了 手动可以直接pull 配置了mirror的仓库

crictl pull registry.k8s.io/kube-proxy:v1.28.4  
docker pull nginx:1.21

© 版权声明
支持作者

☝️用微信请我喝杯咖啡☕️

😛如果文章对您有用,请支持作者😛

支持作者

☝️用支付宝请我喝杯奶茶🧋

相关文章

暂无评论

暂无评论...