本文要讲的是如何制作项目中自己的镜像加速器(如果你有墙外的服务器,就不需要我的方案了。直接用国外服务器起registry容器,国内服务器能连到这台国外服务器就行了),在实际应用过程中,在拉dockerhub镜像时,因为存在网络上被墙的原因,我们无法通过docker pull tomcat这样的命令直接拉取到镜像或者拉取的非常慢,这时候就需要用到镜像加速器了。最简单的肯定是使用阿里云和亚马逊 的镜像加速地址,放入机器的/etc/docker/daemon.json文件,就像这样,下面加了阿里云,科大,道云等加速器,目前我测试的比较稳定并且不需要登录获取的加速器地址是azure加速器地址(https://dockerhub.azk8s.cn):

{"registry-mirrors": ["https://1nj0zren.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","http://f1361db2.m.daocloud.io","https://registry.docker-cn.com"]
}

下面正式开始介绍如何制作自己的镜像加速器,先介绍下我做的,然后再跟大家说下参考的官方地址。
1、配置config.yaml文件
该文件是registry的配置文件,里面会配置s3存储和缓存redis等。

version: 0.1
log:fields:service: registrylevel: info
storage:cache:blobdescriptor: redis #缓存使用redis,下面需要配置redis信息,这边是可以配置内存做缓存的,下面会有地址让给参考s3:#存储配置,我们存储使用的是minio,你自己部署的时候直接用minio镜像起个容器就行,以下信息都是Minio提供的。accesskey: admin #minio登录账号和密码secretkey: A123456zregion: huadongregionendpoint: http://10.124.13.127:9000bucket: mirror-registryencrypt: falsesecure: falsev4auth: truechunksize: 5242880rootdirectory: /delete:enabled: truemaintenance:uploadpurging:enabled: trueage: 168hinterval: 24hdryrun: falsereadonly:enabled: false
http:addr: :5000headers:X-Content-Type-Options: [nosniff]
redis:addr: 10.154.12.248:6379  #redis的地址password: A123456z #redis密码db: 0dialtimeout: 10msreadtimeout: 10mswritetimeout: 10mspool:maxidle: 16maxactive: 64idletimeout: 300s
health:storagedriver:enabled: trueinterval: 10sthreshold: 3
proxy:remoteurl: https://dockerhub.azk8s.cn#这边可替换成其他加速地址:https://dockerhub.azk8s.cn;https://cduvuqsh.mirror.aliyuncs.com

2、Dockerfile
用于制作我们自己的registry镜像,基于官方的registry镜像做的,

FROM registry:latest
LABEL maintainer="fishing_fly <xxxx@163.com>"
COPY entrypoint.sh /entrypoint.sh
COPY config.yml /etc/docker/registry/config.yml

主要拷贝文件entrypoint.sh和registry的配置文件
3、entrypoint.sh

#!/bin/shset -eCONFIG_YML=/etc/docker/registry/config.ymlif [ -n "$PROXY_REMOTE_URL" -a `grep -c "$PROXY_REMOTE_URL" $CONFIG_YML` -eq 0 ]; thenecho "proxy:" >> $CONFIG_YMLecho "  remoteurl: $PROXY_REMOTE_URL" >> $CONFIG_YMLecho "------ Enabled proxy to remote: $PROXY_REMOTE_URL ------"
elif [ $DELETE_ENABLED = true -a `grep -c "delete:" $CONFIG_YML` -eq 0 ]; thensed -i '/rootdirectory/a\  delete:' $CONFIG_YMLsed -i '/delete/a\    enabled: true' $CONFIG_YMLecho "------ Enabled local storage delete -----"
ficase "$1" in*.yaml|*.yml) set -- registry serve "$@" ;;serve|garbage-collect|help|-*) set -- registry "$@" ;;
esacexec "$@"

主要做的一件事是将命令行设置的PROXY_REMOTE_URL写入config.yaml文件,这个地址是加速器的地址,可以写入阿里云或者azure的加速器地址
3、Makefile文件

VERSION ?= v1.0image:docker build -t registry-mirror:${VERSION} .run-azure:docker run -itd -p 7998:5000 -e PROXY_REMOTE_URL=https://dockerhub.azk8s.cn  --restart=always  --name registry-mirror-azure registry-mirror:${VERSION}run-aliyun:docker run -itd -p 7999:5000 -e PROXY_REMOTE_URL=https://cduvuqsh.mirror.aliyuncs.com  --restart=always  --name registry-mirror-aliyun registry-mirror:${VERSION}

在运行docker run命令时可以指定代理的加速器地址。你在项目中使用时可以代理多个加速器地址,做高可用。
4、在其他需要拉镜像的虚拟机上,修改/etc/docker/daemon.json中registry-mirrors配:

{"registry-mirrors": ["http://10.143.12.120:7998","http://10.143.12.120:7999"]
}

这两个ip和端口,是我们上面起registry镜像的地址和端口。docker 本地拉镜像会按需去第一个地址拉,拉不到的话,去第二个地址拉。
上面这些文件配置好运行一下命令在待部署registry的服务器上运行:

#打镜像,镜像公用
make build
make run-azure #起微软的registry镜像
make run-aliyun #起阿里云的registry镜像

下面说下参考地址:
https://github.com/docker/docker.github.io/blob/master/registry/deploying.md
https://github.com/docker/docker.github.io/blob/v18.03/registry/configuration.md (这里面会有配置的详细解释)

国内镜像加速器registry的制作相关推荐

  1. 小白学Docker(四) docker配置阿里云国内镜像加速器

    一,登录你的阿里云,搜索容器镜像服务 二.点击镜像加速器,选择你安装docker的操作系统 三.执行相关命令 四,完成.速度快了很多哦.

  2. docker配置国内镜像加速器

    1.访问阿里云,在容器服务-容器镜像服务模块获取加速器配置方式 2.容器镜像服务-镜像工具-镜像加速器模块 3.根据操作系统,选择不同方式 #ubuntu修改方式:修改daemon配置文件/etc/d ...

  3. Docker配置国内镜像加速

    天下容器,唯快不破 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 国内镜像加速器,这样我们下载镜像的时候可以加速. 进入etc/docker该录下,创建 ...

  4. Docker相关的网络问题-软件源和镜像加速器

    Docker相关的网络问题 软件源和镜像加速器 在国内访问国外的开源网站,需要"跨越千山万水",一般访问速度慢,或者直接访问不了. [情况1]:Docker这个软件安装不了怎么办? ...

  5. 企业必会技能Docker容器、国内镜像源、web界面管理、配置镜像仓库、镜像加速器、超细详解

    文章目录 国内镜像源 拉取 启动MySQL web界面管理docker容器 点击查看主机 配置阿里云的镜像仓库 登录镜像仓库 Docker 镜像加速器 国内镜像源 使用国内镜像:进入网站:https: ...

  6. Docker容器(配置+镜像建立及优化+镜像加速器制作)

    一.docker简介 Docker是管理容器的引擎. Docker为应用打包.部署平台,而非单纯的虚拟化技术 1.VM vs Container 2.传统虚拟机和容器的技术对比 3.容器是如何工作的 ...

  7. docker介绍说明,docker配置代理加速器、docker使用国内镜像仓库

    文章目录 容器的介绍 了解容器 容器管理 配置docker代理[加速器] 说明 配置阿里云 配置docker加速器 使用国内镜像仓库 网易云 阿里云 容器的介绍 了解容器 下面这篇博客中清晰解释了何为 ...

  8. Docker容器之Docker Toolbox下配置国内镜像源-阿里云加速器(Windows)

    参考别人配置的网站:https://www.imooc.com/article/48684 阿里云配置文档(要登录, 且开通容器服务器):https://cr.console.aliyun.com/c ...

  9. 部署企业自己的Docker Hub镜像加速器

    背景 国内从 Docker Hub 拉取镜像有时会遇到困难,一般是网络比较慢,需要很长时间,极有可能连接断裂,拉不到镜像.此时,可以配置镜像加速器.国内很多云服务商都提供了国内加速器服务,例如阿里云. ...

  10. Docker Hub 镜像加速器

    感谢您的阅读,本文由 杨斌的博客 版权所有. 如若转载,请注明出处:杨斌的博客(y0ngb1n.github.io/a/docker-re-) 本文首发于 GitHub Gist:gist.githu ...

最新文章

  1. 《Linux内核原理与分析》第二周作业
  2. HTML 5与CSS 3权威指南(第2版·上册)
  3. STIMULUS(二) —— Hello, Stimulus
  4. VMware虚拟机中CentOS网络设置
  5. mysql 部门表_MySQL高级
  6. im4java 文档_im4java学习---阅读documentation文档
  7. centos7+jexus5.8.3部署ASP.NET的MVC项目
  8. mysql pdo insert_PDO数据库操作类——插入数据的实现
  9. Spark内核解析之七:核心组件解析
  10. 春季高考计算机专业专业分值,春季高考总分多少 分值分布情况如何
  11. ubuntu编译libjpeg-turbo
  12. linux dig命令
  13. Linux:linux终端命令关闭pycharm
  14. 【行业聚焦】畅捷通用自然语言技术颠覆企业应用人机交互模式!
  15. Android 服务器消息推送技术
  16. linux中文件权限为d-rwxr-xr,Linux基础知识之文件权限详解
  17. Golang 计算MD5值
  18. Windows安全描述符SECURITY_DESCRIPTOR阅读注释
  19. (C++题目)定义一个描述学生基本情况的类Student,数据成员包括姓名、学号、英语成绩和高数成绩;成员函数包括构造函数、析构函数、获取姓名、获取学号、求出平均成绩,以及显示各
  20. 如何在IDEA中创建Web项目

热门文章

  1. 赛格威航空T15评测骑行测试
  2. 计算机应用基础考试题2020上机东华大学,2020年秋东华大学继续教育《大学英语3》平时作业.docx...
  3. 解决哈希冲突的方法,Hash的介绍,散列因子的介绍
  4. 李沐动手学深度学习V2-BERT预训练和代码实现
  5. 字节跳动最新开源!java后端工程师简历模板
  6. 湖南大学夏令营c语言考试题,夏令营试题
  7. 使用大白菜U盘重装系统
  8. 梯度的旋度为零证明_旋度的逆运算
  9. 盘是什么意思计算机网络,hdd网络上什么意思
  10. 新鲜新奇事物_尝试新鲜事物的唯美句子