一、安裝docker CE
參考docker doc
https://docs.docker.com/install/linux/docker-ce/centos/
二、docker啟動nexus3
# 1.登錄docker hub docker login # 2.拉取nexus3鏡像 docker pull sonatype/nexus3 # 3.查看鏡像 docker images # 4.啟動nexus3 docker run -id --name=nexus3 \ --privileged=true \ --restart=always \ -p 8081:8081 \ -p 10000:10000 \ -p 10010:10010 \ -p 10020:10020 \ -v /opt/nexus3/nexus-data:/var/nexus-data \ 836c51250912 # 將容器的10000 10010 10020端口映射到host機, 這些端口作為后續nexus3創建的docker鏡像倉庫支持docker訪問的端口 # 5.查看nexus3日志 docker logs -f nexus3
三、啟動nexus失敗的問題
如果服務器內存太小導致nexus無法啟動,可以啟用swap
https://www.cnblogs.com/wuxie1989/p/5888595.html
https://www.cnblogs.com/kerrycode/p/5246383.html
https://www.cnblogs.com/bingyeh/p/5913486.html
Part one: nexus搭建docker鏡像倉庫
一、nexus3創建docker鏡像倉庫及用戶、角色
- 使用默認管理賬號密碼登錄nexus3管理界面
https://www.jianshu.com/p/77af52a75ad8
https://segmentfault.com/a/1190000015629878
登錄地址: http://服務器ip:8081
- 三種類型的docker鏡像倉庫
hosted、proxy、group
設置可以被docker-cli直接訪問的端口(啟動nexus容器的時候需要將這些端口暴露到host機);
- 設置角色、創建用戶
創建角色、設置角色的權限;
角色可以繼承
創建用戶,為用戶分配角色;
二、通過docker-cli使用鏡像倉庫
- 設置docker-daemon的 insecure-registries
# 1.查看docker-daemon配置文件 systemctl status docker.service # 2.修改配置文件 vi /usr/lib/systemd/system/docker.service # ExecStart=/usr/bin/dockerd --insecure-registry 47.116.91.161:10000 --insecure-registry 47.116.91.161:10010 --insecure-registry 47.116.91.161:10020 -H fd:// --containerd=/run/containerd/containerd.sock
# 3.重啟docker-daemon systemctl daemon-reload # 4.重啟docker systemctl restart docker
- 登錄到nexus3搭建的docker鏡像倉庫
docker login xxx:xxx:xxx:xxx:10010
Part Two: nexus搭建maven倉庫
https://www.cnblogs.com/dreamroute/p/5440419.html
https://blog.csdn.net/ZZY1078689276/article/details/78953011
一、配置mavensettings.xml
安裝完成的nexus已經創建了4個maven倉庫
## 私服的id需要與nexus倉庫id保持一致 <server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
二、修改項目pom.xml
## repository的id與ssettings.xml server id 一致 <distributionManagement>
<repository>
<id>maven-releases</id>
<name>Nexus-Release-Repository</name>
<url>http://xx.xxx.xx.xxx:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>
三、maven build... > goals: deploy
jar包即可安裝到本地倉庫即上傳到私服
四、SNAPSHOT版本
- release正式倉庫則是用來保存穩定的發行版本。
編譯打包時如果發現本地已經存在該版本的模塊,則不會再去私服下載。
- snapshot快照倉庫用於保存開發過程中的不穩定版本,
定義一個組件/模塊為快照版本,只需要在pom文件中在該模塊的版本號后加上-SNAPSHOT即可(注意這里必須是大寫);
mvn deploy時會自動發布到快照版本庫中;
其他工程使用該快照版本的模塊如1.0-SNAPSHOT,即使本地倉庫存在該快照版本模塊1.0-SNAPSHOT,maven仍會自動從私服下載最新的快照版本。
實際上發布到快照倉庫后,Version為1.0-發布時間。