使用 docker-compose 快速搭建 k8s 镜像缓存服务

搭建和使用 k8s 都需要使用到多个镜像源,而这些镜像源均位于国外。如何避免浪费过多的时间在镜像的获取中呢?查阅了网上的各种资料,大部分使用了镜像替换的方法,通过 pull 其他镜像源的里同步的相关镜像,然后在本地通过 tag 重命名的方式使用,操作繁杂。

于是我通过这篇文章 使用代理机器缓存gcr的镜像 想到,可以通过这种 proxy 和 dns 欺骗的方式,启动多个 registry 然后前端使用 nginx 反向代理的方式一次提供多个镜像的代理缓存服务。这里就需要使用 docker-compose 做一个简单的编排。

代理了三个用到的镜像源: gcr.io、k8s.gcr.io、quay.io 。已经将 docker-compose 配置文件上传至 github

具体使用方法:

  下载所有配置文件,配置 .env 文件中的 HTTPS_PROXY ,便可以使用 docker-compose up -d 一键启动。

  客户机配置相应 hosts 用于将镜像源地址指向本地代理缓存服务器。客户机 docker 服务也需要配置 insecure-registries 参数以使用 http 服务类型,而非 https。配置后需要重启 docker 服务。

注意事项:

  cache 目录直接配置在了项目当前目录,请留意磁盘空间大小。