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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM