Nexus3部署私有源企业版 1。匿名拉取镜像dockerpull这一点很重要所以写在开头 2。容器化部署nexus3 dockerrunitdp8081:8081p8082:8082p8083:8083p8084:8084namenexusprivilegedtruevhomeubuntulocalrepo:nexusdatasonatypenexus3:3。19。1 3。创建docker仓库 创建存储目录 创建docker仓库 仓库配置 4。创建用户用于push镜像 5。为repo仓库添加SSL证书 ip地址可以换成内网ip upstreamnexusdockerget{ server127。0。0。1:8082; } upstreamnexusdockerput{ server127。0。0。1:8083; } server{ listen80; listen443ssl; listen〔::〕:443; servernamedockerhub。xxx。tech; sslcertificateetcsslxxx。techbundle。crt; sslcertificatekeyetcsslxxx。tech。key; sslprotocolsTLSv1。1TLSv1。2; sslciphers!aNULL:kECDHAESGCM:ECDHAESGCM:RSAAESGCM:kECDHAES:ECDHAES:RSAAES:; sslpreferservercipherson; sslsessioncacheshared:SSL:10m; disableanylimitstoavoidHTTP413forlargeimageuploads clientmaxbodysize0; requiredtoavoidHTTP411:seeIssue1486(https:github。comdockerdockerissues1486) chunkedtransferencodingon; accesslogvarlognginxaccessdockerhub。log; errorlogvarlognginxerrordockerhub。log; 设置默认使用推送代理 setupstreamnexusdockerput; 当请求是GET,也就是拉取镜像的时候,这里改为拉取代理,如此便解决了拉取和推送的端口统一 if(requestmethodGET){ setupstreamnexusdockerget; } 只有本地仓库才支持搜索,所以将搜索请求转发到本地仓库,否则出现500报错 indexindex。htmlindex。htmindex。php; if(requestmethod!GET){ setupstreamnexusdockerput; } location{ proxypasshttp:127。0。0。1:8082; proxysetheaderHosthost; proxyconnecttimeout3600; proxysendtimeout3600; proxyreadtimeout3600; proxysetheaderXRealIPremoteaddr; proxybufferingoff; proxyrequestbufferingoff; proxysetheaderXForwardedForproxyaddxforwardedfor; proxysetheaderXForwardedProtohttp; } } server{ listen80; listen443ssl; listen〔::〕:443; servernameregistry。xxx。tech; accesslogvarlognginxregistry。xxx。log; 证书 sslcertificateetcsslxxx。techbundle。crt; sslcertificatekeyetcsslxxx。tech。key; sslprotocolsTLSv1。1TLSv1。2; sslciphers!aNULL:kECDHAESGCM:ECDHAESGCM:RSAAESGCM:kECDHAES:ECDHAES:RSAAES:; sslpreferservercipherson; sslsessioncacheshared:SSL:10m; disableanylimitstoavoidHTTP413forlargeimageuploads clientmaxbodysize0; requiredtoavoidHTTP411:seeIssue1486(https:github。comdockerdockerissues1486) chunkedtransferencodingon; indexindex。htmlindex。htmindex。php; location{ proxypasshttp:127。0。0。1:8081; proxysetheaderHosthost; proxyconnecttimeout3600; proxysendtimeout3600; proxyreadtimeout3600; proxysetheaderXRealIPremoteaddr; proxybufferingoff; proxyrequestbufferingoff; proxysetheaderXForwardedForproxyaddxforwardedfor; proxysetheaderXForwardedProtohttp; proxysetheaderXForwardedProtohttps; accesslogvarlognginxaccessregistry。log; errorlogvarlognginxerrorregistry。logdebug; } } 6。登陆repo dockerloginuzjp12345676dockerhub。xxx。tech dockertag(imagesID)345gfeeo9ndockerhub。xxx。technginx:latest修改tag dockerpushdockerhub。xxx。technginx:latest推送镜像到dockerrepo里面 7。Dockerpull匿名拉取 随便在什么机器上 dockerpulldockerhub。xxx。technginx:latest匿名拉取repo中的镜像。