什么是nexus?

nexus是一个强大的私库管理平台。在没有私有仓库的时候,我们镜像提交只能提交公网,会造成公网带宽。
并且我们有一些私有的镜像和maven包不想放到公网。也不好处理。

我们使用一条命令快速搭建nexux

docker run -d --net host --name nexus sonatype/nexus3
启动之后我们就可以通过http://localhost:8081 访问。
默认账号密码为admin/admin123

创建docker repository

按照下图找到create repository的地方,点击创建后选择docker(hosted)类型。
使用nexus搭建docker register仓库

输入Name和http port地址后,点击创建后,就完成了repository的创建。

使用nexus搭建docker register仓库

代理docker repository

因为安全原因,docker push/pull的时候必须使用https协议,使用nexus也可以配置https,但是比较麻烦。这里我选择使用ngin代理一下使用Nexus构建的docker repository。nginx配置如下:(ssl签名使用的自签名证书)
使用nexus搭建docker register仓库
docker login https://registry-nexus.qa.jr.ly.com:8443
使用nexus搭建docker register仓库
因为是使用的自签名,所以dockerd服务并不认可,登录会包报错,解决方法如下:

处理自签名证书问题

 cd /etc/docker
 mkdir certs.d
 创建login域名对应对应的目录,并且把registry-nexus.qa.jr.ly.com.crt文件放入
 mkdir registry-nexus.qa.jr.ly.com:8443 
 cd registry-nexus.qa.jr.ly.com:8443
 cp somedir/registry-nexus.qa.jr.ly.com.crt .
 创建测试的镜像,尝试提交
 docker tag centos registry-nexus.qa.jr.ly.com:8443/jfcentos
 docker push registry-nexus.qa.jr.ly.com:8443/jfcentos

再次尝试登陆,可以顺利登陆

使用nexus搭建docker register仓库

马拉松需要配置urls

找一台docker login成功的机器,把家目录下面的.docker目录打包成一个压塑包,放到可以下载的地方。配置到马拉松urls目录
http://10.100.157.66/inte-docker_auth.tar.gz