镜像加速缓存部署

Homelab 折腾K3S 一些基础镜像每次都是到官方的reg上去拉取,速度的确是有点慢。想着搭建一个 镜像的缓存。用来缓存远程的image来加速拉取以及减少额外流量。

部署 registry

这里使用 docker run 或者 后面提供的 docker-compose来进行一键挂载。通过挂载目录持久化保存镜像数据缓存,方便后续使用.

虽说compose 在商业上已经宣布死亡,但是在爱好者的领域焕发生机

docker run -d --name registry --restart always \
    -p 5000:5000 \
    -v /data/registry:/var/lib/registry \
    -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
    registry:2

-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io 为指定上游远程镜像仓库为官方镜像仓库.

version: '3'

services:
  registry:
    image: registry:2
    container_name: registry
    restart: always
    ports:
      - "5000:5000"
    environment:
      REGISTRY_PROXY_REMOTEURL: https://registry-1.docker.io
    volumes:
      - /data/registry:/var/lib/registry

通过 ngixn 反向代理配置域名(可选)

如果是公网环境的话推荐为仓库提供反向代理以及配置域名和证书使用.。内网环境的话就无所谓了。

客户端配置 daemon.json

客户端配置daemon.jsonregistry-mirrors参数来指定加速镜像仓库.

例如 registry 所在服务器公网 IP 为 1.2.3.4 ,且防火墙开放了 5000 端口.注意此处需要明确填写 http 协议.

{
    "registry-mirrors": [
      "http://1.2.3.4:5000"
    ]
}
# 如果有域名以及证书配置的话
{
    "registry-mirrors": [
      "https://registry.yourdomain.com"
    ]
}

配置完成需重载 daemon 并重启 docker

sudo systemctl daemon-reload
sudo systemctl restart docker

关于更多功能功能可以参考官方文档.

同场加映Joxit/docker-registry-ui - GitHub 一个WebUI用于管理和展示 仓库的详细内容,以及对镜像进行基础管理。

preview