Nexus3搭建Docker等私服
0、目的
- docker私有仓库的搭建,方便后期的CI/CD
- dotnetcore项目sdk本地缓存,解决微软官方下载缓慢的问题
- nuget私有仓库
- 等
1、环境情况
- windows10
- Docker Desktop
2、在docker环境中安装nexus3
#下载镜像 docker pull sonatype/nexus3
3、启动nexus3
docker run -d -p 8081:8081 -p 8082:8082 -p 8088:8088 -p 8090:8090 --name nexus3niu sonatype/nexus3
8081为nexus的web管理后台端口
8088为hosted私有docker仓库push端口
8082为group拉取镜像端口
8090备用
4、进入docker中,修改nexus的默认密码
docker exec -it 77ab02acf9cf /bin/bash cd nexus-data/ bash-4.4$ cat admin.password dae2eaaa-a4ea-44cf-b754-aab10e999d1ebash-4.4$ exit #其中dae2eaaa-a4ea-44cf-b754-aab10e999d1e变为默认密码,可以直接修改,也可以复制出来,到web端首次登陆成功后再修改
5、访问http://127.0.0.1:8081,登陆用户名和密码即可登陆成功
6、nexus3关于docker仓库的三种支持方式
hosted
: 本地存储,即同 docker 官方仓库一样提供本地私服功能。proxy
: 提供代理其他仓库的类型,如 docker 中央仓库。group
: 组类型,实质作用是组合多个仓库为一个地址。
7、分别通过web后台搭建三种类型的仓库,具体如截图
- 首先建立一个blob,用于存储镜像,实际生产环境建议磁盘大小500G左右
- 建立hosted
- 建立proxy
- 建立group
8、测试连接
docker login -u admin -p adminxxx 127.0.0.1:8088 #hosted docker login -u admin -p adminxxx 127.0.0.1:8082 #group #返回如下情况代表连接成功 WARNING! Using --password via the CLI is insecure. Use --password-stdin. Login Succeeded
9、测试拉取远程镜像到本地代理仓库,注意先要登录
docker pull 127.0.0.1:8082/redis #127.0.0.1:8082/为你的仓库地址,redis为dockerhub官方里能找到的镜像tag,如果错误,将拉取不成功 #拉取aspnetcore 5.0和sdk5.0,注意这里的newbe36524/aspnet:5.0-buster-slim即是tag
docker pull 127.0.0.1:8082/newbe36524/aspnet:5.0-buster-slim
docker pull 127.0.0.1:8082/newbe36524/sdk:5.0-buster-slim
执行成功后,可以到web后端看到已经存在镜像了,下次会直接从本地仓库拉取,速度会特别快
10、推送本地镜像
docker tag webapplication3:dev 127.0.0.1:8088/webapplication3:latest docker push 127.0.0.1:8088/webapplication3:latest
注意group只可以拉取,不可以push推送,要在hosted上推送。group可以理解为统一暴露的pull拉取入口(里面可以包含很多个proxy、hosted)
11、关于vs的编译慢的问题,可以修改dockerfile文件如下: