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文件如下:

 

posted @ 2021-02-18 15:59  jackchain  阅读(1978)  评论(0编辑  收藏  举报