赞
踩
网上有很多的Registry
服务器都支持第三方用户注册,而后基于用户名去做自己的仓库,但是使用互联网上的Registry
有一个缺陷,那就是我们去推送和下载镜像时都不会很快,而在生产环境中很可能并行启动的容器将达到几十、上百个,而且很有可能每个服务器本地是没有镜像的,此时如果通过互联网去下载镜像会有很多问题,比如下载速度会很慢、带宽会用很多等等,如果带宽不够的话,下载至启动这个过程可能要持续个几十分钟,这已然违背了使用容器会更加轻量、快速的初衷和目的。因此,很多时候我们很有可能需要去做自己的私有Registry
。
Docker Registry分类:
事实上,如果运维的系统环境托管在云计算服务上,比如阿里云,那么用阿里云的Registry
则是最好的选择。很多时候我们的生产环境不会在本地,而是托管在数据中心机房里,如果我们在数据中心机房里的某台主机上部署Registry
,因为都在同一机房,所以属于同一局域网,此时数据传输走内网,效率会极大的提升。
所有的Registry
默认情况下都是基于https工作的,这是Docker的基本要求,而我自建Registry
时很可能是基于http工作的,但是Docker默认是拒绝使用http提供Registry
服务的,除非明确的告诉它,我们就是要用http协议的Registry
。
为了帮助我们快速创建私有Registry
,Docker专门提供了一个名为docker-distribution
的软件包,我们可以通过安装这个软件包快速构建私有仓库。
当然,官方也提供了Registry
的镜像,我们可以直接将其pull到本地并启动为容器即可快速实现私有Registry
。
环境:
角色 | 主机名 | IP |
---|---|---|
docker | node01 | 172.16.78.125 |
registry | node02 | 172.16.78.128 |
在node02上安装docker-distribution
[root@node02 ~]# yum -y install docker-distribution [root@node02 ~]# vim /etc/docker-distribution/registry/config.yml ... version: 0.1 log: fields: service: registry storage: cache: layerinfo: inmemory filesystem: rootdirectory: /var/lib/registry //这里可以修改镜像存放目录 http: addr: :5000 ... [root@node02 ~]# systemctl enable --now docker-distribution [root@node02 ~]# ss -antl|grep 5000 LISTEN 0 128 [::]:5000 [::]:*
在node01上使用自建的Registry去上传镜像
//使用insecure-registries参数添加http支持
[root@node01 ~]# vim /etc/docker/daemon.json
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。