搭建 Docker 镜像仓库代理

栏目: IT技术 · 发布时间: 4年前

内容简介:在使用 Kubernetes 时,我们需要经常访问 gcr.io 镜像仓库,由于众所周知的原因,gcr.io 在中国无法访问。gcr.azk8s.cn 是 gcr.io 镜像仓库的代理站点,原来可以通过 gcr.azk8s.cn 访问 gcr.io 仓库里的镜像,但是目前 *.azk8s.cn 已经仅限于 Azure 中国的 IP 使用,不再对外提供服务了。为了能够顺利访问 gcr.io 镜像仓库,我们需要在墙外自己搭建一个类似于 gcr.azk8s.cn 镜像仓库代理站点。$ yum install -y

在使用 Kubernetes 时,我们需要经常访问 gcr.io 镜像仓库,由于众所周知的原因,gcr.io 在中国无法访问。gcr.azk8s.cn 是 gcr.io 镜像仓库的代理站点,原来可以通过 gcr.azk8s.cn 访问 gcr.io 仓库里的镜像,但是目前 *.azk8s.cn 已经仅限于 Azure 中国的 IP 使用,不再对外提供服务了。为了能够顺利访问 gcr.io 镜像仓库,我们需要在墙外自己搭建一个类似于 gcr.azk8s.cn 镜像仓库代理站点。

前提条件

  • 一台能够翻墙的服务器
  • 一个域名和域名相关的SSL证书(docker pull 镜像时需要验证域名证书)

安装配置 Docker

添加 Docker yum 仓库

$ yum install -y yum-utils

$ yum-config-manager \

--add-repo \

https://mirrors.aliyun.com/doc ... .repo

安装 Docker

$ yum install -y docker-ce docker-ce-cli containerd.io

配置 Docker

如下配置 Docker,设置 Docker 的日志格式为 json,日志文件大小为 100M,最多保存 3 个日志;接下来设置 Docker 镜像私有仓库和官方镜像加速地址;设置 Docker 的数据目录到 /data/docker;最后设置 Docker 的 Storage Driver 为 overlay2。

$ mkdir /etc/docker

$ cat << EOF > /etc/docker/daemon.json

{

"log-driver": "json-file",

"log-opts": {

"max-size": "100m",

"max-file": "3"

},

"insecure-registry": [

"hub.yyy.com"

],

"registry-mirror": " https://q00c7e05.mirror.aliyuncs.com" ,

"data-root": "/data/docker",

"exec-opts": ["native.cgroupdriver=systemd"],

"storage-driver": "overlay2",

"storage-opts": [

"overlay2.override_kernel_check=true"

]

}

EOF

启动 Docker

$ systemctl enable docker && systemctl start docker

安装 Docker Compose

$ curl -L " https://github.com/docker/comp ... pose- $(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ chmod +x /usr/local/bin/docker-compose

$ ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

$ docker-compose --version

docker-compose version 1.25.4, build 1110ad01

启动镜像仓库代理

启动前准备

从 github 下载 registry-proxy 配置文件:

$ git clone https://github.com/findsec-cn/registry-proxy.git

$ cd registry-proxy

将域名的证书放置到 cert 目录下,其中 server.crt 为 ssl 证书文件, server.key 为 ssl 私钥。

修改 nginx.conf 配置文件,将配置文件中的域名替换成自己的域名(yyy.com):

$ sed -i 's/xxx.com/yyy.com/g' nginx.conf

启动镜像仓库代理

启动镜像仓库代理:

$ docker-compose up -d

查看启动日志:

$ docker-compose logs -f

解析域名

将 hub.yyy.com、gcr.yyy.com 解析到此服务器的地址上。

我们可以通过 http://hub.yyy.com 查看镜像仓库缓存的镜像;可以通过gcr.yyy.com下载镜像。

使用镜像仓库代理

我们只需要将 k8s.gcr.io 替换成 gcr.yyy.com/google-containers;将 gcr.io 替换成 gcr.yyy.com 就可以下载 gcr.io 仓库里的镜像了。

比如我们要下载镜像:

$ docker pull k8s.gcr.io/pause:3.1

可以如下通过镜像仓库代理下载:

$ docker pull gcr.yyy.com/pause:3.1

比如我们要下载镜像:

$ gcr.io/kubernetes-helm/tiller:v2.16.3

$ gcr.io/google-containers/etcd:3.2.24

可以如下通过镜像仓库代理下载:

$ gcr.yyy.com/kubernetes-helm/tiller:v2.16.3

$ gcr.yyy.com/google-containers/etcd:3.2.24

如果你用 kubeadm 部署 Kubernetes 集群,可以在 kubeadm 配置文件中设置镜像地址为:gcr.yyy.com/google-containers

$ cat kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta1

kind: ClusterConfiguration

kubernetesVersion: v1.18.1

......

imageRepository: gcr.yyy.com/google-containers

更多文章请关注我们的微信公众号:

搭建 Docker 镜像仓库代理

也可以加入 Kubernetes 技术实战 QQ 群一起交流学习:

搭建 Docker 镜像仓库代理

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Pragmatic Programmer

The Pragmatic Programmer

Andrew Hunt、David Thomas / Addison-Wesley Professional / 1999-10-30 / USD 49.99

本书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视――即根据需求,创建用户乐于接受的、可工作和易维护的代码。本书包含的内容从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术。从本书中将学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容。一起来看看 《The Pragmatic Programmer》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换