1 Docker 安裝 Nexus3
1.1 創建目錄
在硬碟上創建 Nexus3 的主目錄:
mkdir -p /Users/yygnb/dockerMe/nexus3
為該目錄添加權限:
chmod 777 -R /Users/yygnb/dockerMe/nexus3
1.2 拉取鏡像
搜索鏡像:
docker search nexus3
搜索結果:

拉取鏡像:
docker pull sonatype/nexus3
1.3 運行容器
鏡像拉取完畢后,便可運行容器,這里映射了 nexus-data 目錄到上面創建的目錄和三個埠,三個埠分別是:
8081 - nexus3 服務埠
8082 - host 鏡像倉庫的服務埠
8083 - group 鏡像倉庫的服務埠
運行容器:
docker run -tid \
-p 8081:8081 \
-p 8082:8082 \
-p 8083:8083 \
-v /Users/yygnb/dockerMe/nexus3:/nexus-data \
--name nexus3 \
-e NEXUS_CONTEXT=nexus \
sonatype/nexus3
查看容器運行狀態:
docker ps -a | grep nexus3

查看容器的日志:
docker logs -f nexus3
或
docker logs -f 547b
如果容器運行失敗,嘗試把 docker 記憶體和硬碟調大(Preferences --> Resources):
重啟 docker 后,重新啟動容器:
docker start nexus3
1.4 訪問私服
容器啟動后,在瀏覽器中訪問:
localhost:8081/nexus
點擊右上角”Sign in“按鈕,第一次登錄時,登錄彈窗中會顯示密碼位于/nexus-data/admin.password,由于 /nexus-data 目錄已經映射到磁盤的 /Users/yygnb/dockerMe/nexus3 目錄,故可以在該目錄查看到 admin.password 檔案,也可以在控制臺中進入容器查看:
進入容器:
docker exec -it nexus3 /bin/bash
查看密碼:
cat /opt/sonatype/sonatype-work/nexus3/admin.password
使用用戶名"admin" 和上面查看到的密碼登錄,登錄成功后,根據向導修改密碼,
在下一步配置匿名訪問時,通常選擇 Enable anonymous access,這樣只有在上傳包的時候需要 profile,拉取包時可以匿名,
2 Nexus3 基本管理
由于后面要分別講述 JS 和 Java 使用 Nexus3 私服,兩者都涉及到倉庫創建,故單獨把這一塊提出來,后面便不再贅述,
2.1 角色管理
nexus3 支持創建角色和用戶,可以創建一個角色,讓該角色只能發布包到私服,
1)進入角色管理界面,點擊右上角的“Create Role”創建角色,如下圖:
2)Role Type 選擇:nexus role;
3)分別填寫角色 ID、名稱、描述,權限選擇:nx-repository-view-*-*-*
4)填寫完畢后保存該角色,
2.2 用戶管理
創建完角色后,需要創建用戶,給該用戶分配 nx-deploy 的角色,
在用戶管理界面,點擊 Create local user 按鈕進入創建用戶界面,在創建用戶界面填寫表單資訊,并分配上一步創建的角色 nx-deploy ,
id:syouyage
password:111111
email:[email protected]
如下圖:

用戶創建成功后,便可在用戶串列中看到剛創建的用戶,
可以退出登錄,測驗使用剛才創建的用戶名和密碼登錄nexus3,
2.3 設定 Realms
如果搭建 npm 私服,發布 JS 庫時需要通過 npm login 等錄,在發布的時候需要私服支持 npm bearer token 方式,
進入 Realms 設定界面,將 npm Bearer Token Realm 選到右側,如下圖所示:
2.4 倉庫管理
如下圖進入倉庫管理界面:
在倉庫串列界面可以點擊 Create repository 按鈕創建倉庫,也可以點擊其中某個倉庫修改倉庫資訊或洗掉倉庫,
2.5 倉庫型別
點擊 Create repository 按鈕后,會進入選擇倉庫型別的界面(Select Recipe),Nexus3 有三大種型別:hosted、proxy、group,
1)hosted:宿主倉庫,即本地倉庫,該倉庫存放本地專案產生的構建,無論是團隊內部開發了通用組件庫、公共 jar 等,都是發布到這里面,
2)proxy:代理倉庫,用來代理遠程倉庫,如代理 Maven 中央倉庫等,
3)group:倉庫組,可以聚合上面兩者,因為在開發程序中,某些包是遠端的、某些包是內部私服中的,這樣就對應了兩個地址,使用倉庫組將 hosted 和 group 聚合,暴露為一個地址,
本文簡單介紹了 Docker 環境下搭建 Nexus3 私服以及 Nexus3 私服的基本操作,后文將分別針對 npm(前端)和 maven(后端)如何使用 Nexus3 私服進行詳細介紹,

感謝你花費寶貴的時間閱讀本文,如果本文給了你一點點幫助或者啟發,還請三連支持一下,點贊、關注、收藏,作者會持續與大家分享更多干貨
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/503349.html
標籤:其他
