24

搭建 Docker 镜像仓库代理

 5 years ago
source link: http://dockone.io/article/10026
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在使用 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

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

jaMN7bE.jpg!web

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

qAjUNvq.jpg!web

Recommend

  • 93

    用友云开发者中心是基于Docker容器进行微服务架构应用的落地与管理。相信各位同学在使用的过程中,会发现随着Docker镜像的增多,占用磁盘空间也约来越多。这时我们需要清理私有镜像仓库中不需要的镜像。但在实际操作时,才会发现这本以为很简单的任务中却暗藏玄机...

  • 9
    • www.wencst.com 4 years ago
    • Cache

    搭建私有docker镜像仓库

    搭建私有docker镜像仓库 作者: wencst 分类: linux,Uncategorized,

  • 11

    Jager · 7月4日 · 2014年iso制作yum仓库 · 本地yum仓库 382次已读这两天工作是用...

  • 7

    Harbor企业级私服Docker镜像仓库搭建及应用 Docker Hub作为Docker默认官方公共镜像,如果想要...

  • 3

    一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64

  • 7

    不知道各位有没有我这种尴尬:kubernetes搭建过程中需要拉取到一些镜像,比如: dockerhub的镜像,这个还好。毕竟有加速器。but k8s.gcr.io,quay.io.这些怎么搞?正巧搭建kubeadm 1.25,helm安装cilium的时候悲摧了。下载不动怎么搞?docker时代的时候我还可以直接导...

  • 4
    • www.bboy.app 2 years ago
    • Cache

    搭建dockerhub镜像加速仓库

    搭建dockerhub镜像加速仓库 2022-10-12 17:27:00 linux

  • 8
    • feiju12138.github.io 2 years ago
    • Cache

    【笔记】搭建私有Docker镜像仓库

    搭建私有Docker镜像仓库学习笔记 搭建没有GUI界面的仓库 通过Docker官方提供的镜像搭建镜像仓库 docker run --name registry --restart=always -p 5000:5000 -d -v registry-data:/var/lib...

  • 15
    • blog.51cto.com 2 years ago
    • Cache

    基于Harbor搭建企业镜像仓库

    虽然Docker官方提供了Docker Hub作为公共的Registry服务器,给到用户进行镜像的保存和管理工作。但对于企业而言,考虑到安全性和网络效率等原因,通常会搭建私有的Registry服务器,用于提供企业内部的镜像仓库服务。本文将基于开源的Harbor项目来介绍关于私有...

  • 11

    Docker镜像仓库harbor的搭建与使用 2022-12-19 2 分钟阅读 一:我们在公司内部建立了Docker内部镜像仓库: harbor是vmware出的一个docker镜像仓库,本质是一组容器的集合体,算是一个多容器的pod. 数据卷缺省是宿...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK