自建Docker镜像加速&缓存服务

利用 Docker 镜像仓库的 镜像代理与缓存 功能加速镜像下载,并使用 nginx 根据域名进行分流,客户端通过自建仓库拉取镜像并缓存在服务端,加快镜像拉取速度。

1. 启动服务端

git clone https://github.com/brighill/registry-mirror.git
cd registry-mirror
# 如果在无法访问 gcr.io 的机器上启动服务则需要增加代理
# export PROXY=ip:port
docker-compose up -d

2. 修改客户端 DNS 记录

将需要加速的域名解析为服务端的 IP(如果有内网 DNS 服务则在 DNS 服务端修改)

#/etc/hosts 
192.168.1.1 gcr.io k8s.gcr.io quay.io docker.io registry-1.docker.io nvcr.io custom.local

3. 配置客户端 docker

### 方法 1: 修改 /etc/systemd/system/docker.service.d/docker-options.conf
[Service]
Environment="DOCKER_OPTS=--insecure-registry=gcr.io --insecure-registry=k8s.gcr.io --insecure-registry=quay.io --insecure-registry=docker.io --insecure-registry=registry-1.docker.io --insecure-registry=nvcr.io --insecure-registry=custom.local --registry-mirror=http://registry-1.docker.io"

### 方法 2: /etc/docker/daemon.json 
"insecure-registries" : ["gcr.io", "k8s.gcr.io", "quay.io", "docker.io", "registry-1.docker.io", "nvic.io", "custom.local"]

4. 重启客户端 docker 服务

sudo systemctl daemon-reload
sudo systemctl restart docker

5. 测试

docker pull gcr.io/google_containers/pause-amd64:3.2

正文完
 
admin
版权声明:本站原创文章,由 admin 2024-06-12发表,共计1002字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。