在准备Docker阶段,由于公司的网络限制,所以准备用Nexus做Private Registry来加速Pull,除了Nexus还有harbor和docker-registry,本文以windows平
在准备Docker阶段,由于公司的网络限制,所以准备用Nexus做Private Registry来加速Pull,除了Nexus还有harbor和docker-registry,本文以windows平台为基础。
1. 下载nexus-oss,并解压
2. 在$NEXUS_HOME/etc/ssl生成证书:
keytool -keystore keystore.jks -alias nexus -genkey -keyalg RSA -ext "SAN=IP:x.x.x.x"
3. 配置SSL:
编辑$NEXUS_HOME/etc/nexus-default.properties,加入SSL配置
...#Enable sslapplication-port-ssl=443#Add ${jetty.etc}/jetty-https.xmlnexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-https.xml,${jetty.etc}/jetty-requestlog.xml...
编辑$NEXUS_HOME/etc/jetty-https.xml,修改KeyStorePassword
...<Set name="KeyStorePassword">passwd</Set><Set name="KeyManagerPassword">passwd</Set>...<Set name="TrustStorePassword">passwd</Set>...
3. 启动Nexus,$NEXUS_HOME/bin/nexus /run($NEXUS_HOME/bin/nexus /install注册服务,$NEXUS_HOME/bin/nexus /start以服务形式启动)
4. 访问Nexus:https://ip:port,登录:admin:admin123
5. 创建Docker-proxy
选择Server administration and configuration -> Repositories
选择Create repository
选择Docker proxy
填写Name
开启Https
选择Remote repository(aliyuncs,163...)
确认:Create repository
6. 由于https只自己生成的证书,所有需要添加非安全仓库参数,在Docker中配置dockerd参数,配置方法见Docker daemon options:
DOCKER_OPTS="--insecure-registry=x.x.x.x:xx"
7. 重启dockerd:sudo service docker restart
8. sudo docker pull ip:port/libaray/name:tag
9. 再次查看Nexus proxy中就会缓存用过的image
PS:?在部署Nexus时,尝试通过https默认端口443来开放服务,导致认证失败,具体原因暂时没找到