首页> 云计算&大数据> Docker私有仓库registry安装配置

[文章]Docker私有仓库registry安装配置

收藏
0 1016 0

【摘要】

默认情况下,Docker用户是从Docker公共仓库Docker Hub上拉取镜像。也可以在有账号的情况下,将自己的镜像上传至公共仓库。但有时候限制于网络,或希望便于内部镜像的统一管理。这时候选择部署自己的私有仓库可能是更好的选择。

【正文】

本文选择部署Docker开源的私有仓库——Docker Registry 2.0。相对于1.0版本,2.0带来新的特点:

l  更快的下载上传;

l  简化了部署过程,更高效的实施部署;

l  可选的存储驱动,可以存储在Amazon S3, Microsoft Azure或者本地存储系统中;

l  Webhook通知,当有镜像push到你的私有镜像库时,webhooks可以触发CI构建并发送通知到IRC

   环境准备

1.1       准备两部Centos 7的虚拟机,信息如下:

主机

IP

角色

docker

192.168.123.50

Docker私有仓库

docker01

192.168.123.52

Docker客户机

1.2       registry V2需要Docker版本高于1.6.0,这里选择部署最新的Docker版本


二   部署过程

2.1       配置hosts文件,使用域名搭建私有仓库。也便于配置证书(registry 2.0默认要求使用https访问);


2.2       在这次环境中选择使用OpenSSL自签名证书。因而需要在docker机器上使用OpenSSL生成key


2.3       使用server.key生成证书文件,依次填入所需信息


2.4      由于证书为自签名证书,docker默认不信任的,需将证书添加至docker的根证书中,在Centos7中,路径为/etc/docker/certs.d/域名/中,并重启docker服务


2.5       同理,客户端也将证书拷贝至对应目录,并重启docker服务;


2.6       运行docker registry的容器,启动并配置私有仓库

  docker run -d -p 443:5000 --restart=always --name registry \  #将宿主机443端口映射至容器5000端口

  -v /data/certs:/certs \        #将宿主机证书文件目录挂载至容器的目录

  -v /data/docker/registry-image:/var/lib/registry \   #将宿主机存储目录挂载至容器的目录

  -v /etc/localtime:/etc/localtime:ro \     #将宿主机时间目录挂载容器目录,保证时区一致

  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \     #指定证书文件

  -e REGISTRY_HTTP_TLS_KEY=/certs/server.key \     #指定key文件

  registry

2.7       查看容器是否正常运行;


三   测试结果

3.1       登陆docker01客户端,查看本地现有镜像;


3.2      使用命令docker tag为本地镜像打标签;


3.3       使用命令docker push上传本地镜像至私有仓库;


3.4       可使用命令curl  https://registry.stastudio.net/v2/_catalog查看私有仓库的镜像,但直接使用会报证书错误。因证书为自签名证书,客户端主机不信任。


3.5       可将自签名导入至主机证书目录,然后更新主机证书。或者使用curl -k命令,忽略证书提示



四  小结

私有仓库能在企业内部利用高速内网宽带满足用户拉取上传镜像要求,低成本维护公司私有镜像。且在测试或持续集成的映像部署中,私有仓库更是一个最好的选择。

Docker registry对比VMware Habor,胜在简单小巧,能快速部署,但功能较少,但也能满足一定程度的要求。在实际使用中我们可以按照需求部署不同的私有仓库。

云计算&大数据
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}