本篇我将为大家介绍Docker中的另外个重头戏——Registry,博主在15年的11月份参加了WOT大会,期间有个朋友问了我“Docker如何做环境管理?”,其实问题的本质就是当我们拥有多个DockerHost的时候,每个DockerHost都需要去公有Registry(Hub)去Pull一次,那么消耗的资源是非常巨大的,且每次更新都非常不方便,所以衍生出了一个需求,我们需要构建自有的镜像库,而这个镜像库,就称之为Registry(其实我更喜欢叫私有Hub)。

以下就是今天所要说DockerFile涉及的环境:

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第1张图片

1、 Registry可以作为独立的VM或者Registry Host运行,也可以使用Container方式运行,这里使用Container方式创建,运行(这里要介绍多一个Run参数,-e,-e是用作指定Container的环境变量所用):

docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/etc/registry -v /opt/data/registry:/etc/registry  –hostname=DR01 –name=DR01  -p 5000:5000 registrywps48E6.tmp

2、 现在我们就可以将本地或远程Host的Images上传到我们的私有Hub了,首先为需要上传的Images打上标签,docker tag 87da34db3c1a 127.0.0.1:5000/vmctestv4(格式为docker tag ImagesID RegistryIP: Registry端口/ImagesName):

wps48E7.tmp

3、 接着使用docker push 127.0.0.1:5000/vmctestv4将刚刚打好标签的p_w_picpaths上传到本地DR中:

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第2张图片

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第3张图片

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第4张图片

4、 现在我们把刚刚上传上去的本地Images删除:

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第5张图片

5、 OK,现在我们试着从私有Hub去拉下来Images,docker pull 127.0.0.1:5000/vmctestv4:

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第6张图片

6、 我们试下利用刚刚pull下来的Imagers创建Container:

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第7张图片

wps492C.tmp

wps492D.tmp

7、 这样我们就完成了私有Registry的搭建了

【VMCloud云平台】拥抱Docker(七)创建属于自已的Docker Registry_第8张图片