什么是nexus?
nexus是一个强大的私库管理平台。在没有私有仓库的时候,我们镜像提交只能提交公网,会造成公网带宽。
并且我们有一些私有的镜像和maven包不想放到公网。也不好处理。
我们使用一条命令快速搭建nexux
docker run -d --net host --name nexus sonatype/nexus3
启动之后我们就可以通过http://localhost:8081 访问。
默认账号密码为admin/admin123
创建docker repository
按照下图找到create repository的地方,点击创建后选择docker(hosted)类型。
输入Name和http port地址后,点击创建后,就完成了repository的创建。
代理docker repository
因为安全原因,docker push/pull的时候必须使用https协议,使用nexus也可以配置https,但是比较麻烦。这里我选择使用ngin代理一下使用Nexus构建的docker repository。nginx配置如下:(ssl签名使用的自签名证书)
docker login https://registry-nexus.qa.jr.ly.com:8443
因为是使用的自签名,所以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
再次尝试登陆,可以顺利登陆
马拉松需要配置urls
找一台docker login成功的机器,把家目录下面的.docker目录打包成一个压塑包,放到可以下载的地方。配置到马拉松urls目录
http://10.100.157.66/inte-docker_auth.tar.gz
来源:51CTO
作者:SA_小科
链接:https://blog.51cto.com/kexiaoke/2059885