Docerk安裝Nexus3.x 並搭建私有倉庫

Nexus介紹


Nexus 是Maven倉庫管理器,如果你使用Maven,你可以從Maven中央倉庫 下載所需要的構件(artifact),但這通常不是一個好的做法,你應該在本地架設一個Maven倉庫服務器,在代理遠程倉庫的同時維護本地倉庫,以節省帶寬和時間,Nexus就可以滿足這樣的需要。此外,他還提供了強大的倉庫管理功能,構件搜索功能,它基於REST,友好的UI是一個extjs的REST客戶端,它佔用較少的內存,基於簡單文件系統而非數據庫。這些優點使其日趨成爲最流行的Maven倉庫管理器。除此之外,Nexus還可以管理Docker鏡像

通常的做法:本地倉庫沒有,則去中央倉庫下載


搭建私庫的做法:本地倉庫沒有,再去私服下載,私服沒有,再去中央倉庫下載


docker安裝Nexus3.x
安裝docker
在我的另一篇文章有說明,直接使用yum安裝,非常簡單,請移步:
Docker第二篇-Linux和Windows下安裝Docker

安裝Nexus3
準備好一臺虛擬機,執行以下命令:

#創建宿主機掛載目錄並設置權限
mkdir -p /usr/local/nexus3/nexus-data
chown -R 200 /usr/local/nexus3/nexus-data

docker run -d \
--privileged=true \
--name nexus3 \
--restart=always \
-p 8081:8081 \
-p 8082:8082  \
-p 8083:8083  \
-p 8084:8084  \
-p 8085:8085 \
-v /usr/local/nexus3/nexus-data:/nexus-data \
sonatype/nexus3


8081:8081表示宿主機端口和容器端口映射(web訪問)

8082:8082表示nexus服務端口

本地若不存在sonatype/nexus3鏡像,則會去下載,下載完畢後直接啓動

docker logs -f  容器ID  查看日誌顯示

-------------------------------------------------

Started Sonatype Nexus OSS 3.19.1-01

-------------------------------------------------
2019-12-02 13:20:13,667+0000 WARN  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Ignoring deprecated socket close linger time
2019-12-02 13:20:13,704+0000 INFO  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@54968822{HTTP/1.1,[http/1.1]}{0.0.0.0:8082}

安裝完畢!

登錄驗證
訪問web地址:http://ip:8081/
默認賬號爲:admin
默認密碼在文件中:/usr/local/nexus3/nexus-data/admin.password


web界面使用
Browse可以查看當前有多少倉庫,搭建好的Nexus,默認會帶有一些maven倉庫,一般使用這些倉庫就足夠了
默認倉庫說明
maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar
maven-releases:私庫發行版jar,初次安裝請將Deployment policy設置爲Allow redeploy
maven-snapshots:私庫快照(調試版本)jar
maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml或項目pom.xml中使用

倉庫類型
Group:這是一個倉庫聚合的概念,用戶倉庫地址選擇Group的地址,即可訪問Group中配置的,用於方便開發人員自己設定的倉庫。maven-public就是一個Group類型的倉庫,內部設置了多個倉庫,訪問順序取決於配置順序,3.x默認Releases,Snapshots,Central,當然你也可以自己設置。
Hosted:私有倉庫,內部項目的發佈倉庫,專門用來存儲我們自己生成的jar文件
3rd party:未發佈到公網的第三方jar (3.x去除了)
Snapshots:本地項目的快照倉庫
Releases: 本地項目發佈的正式版本
Proxy:代理類型,從遠程中央倉庫中尋找數據的倉庫(可以點擊對應的倉庫的Configuration頁簽下Remote Storage屬性的值即被代理的遠程倉庫的路徑),如可配置阿里雲maven倉庫
Central:中央倉庫
Apache Snapshots:Apache專用快照倉庫(3.x去除了)

上傳鏡像
登錄私服倉庫
注意在push上傳之前必須要先登錄

[root@rancher ~]# docker login 172.16.66.3:8082

打標記
在上傳鏡像之前需要先打一個tag,用於版本標記。
格式是這樣的:

docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>


例如:

# docker tag httpd 172.16.66.3:8082/httpd:v1

最後上傳鏡像:

# docker push 172.16.66.3:8082/httpd:v1

pull鏡像
從私服中下載鏡像也很簡單,執行以下命令即可

# docker pull 172.16.66.3:8082/httpd:v1

搜索鏡像
搜索鏡像也與之前的類似,如下:

# docker search 172.16.66.3:8082/httpd:v1


就可以搜索帶有httpd的鏡像了:



總結
有了這個私服過後,真的是非常方便了。因爲官方的dockerhub鏡像倉庫下載實在是太慢了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章