摘要:安裝號(hào)稱是世界上最流行的私服管理軟件可以搭建幾乎目前所有常見(jiàn)的倉(cāng)庫(kù)如等更是增加了對(duì)倉(cāng)庫(kù)的支持應(yīng)該是搭建私服的唯一選擇有兩個(gè)版本和其中版本是免費(fèi)專業(yè)版需要收費(fèi)對(duì)于日常的倉(cāng)庫(kù)管理已經(jīng)足夠用支持二進(jìn)制文件安裝和安裝這里選擇安裝簡(jiǎn)單方便運(yùn)行以下命令
安裝
Nexus號(hào)稱是世界上最流行的私服管理軟件(The world"s most popular repository),可以搭建幾乎目前所有常見(jiàn)的倉(cāng)庫(kù)如npm,maven,yum等,Nexus3更是增加了對(duì)docker倉(cāng)庫(kù)的支持 ,應(yīng)該是搭建私服的唯一選擇.
Nexus有兩個(gè)版本 Nexus Repository OSS和Nexus Repository Pro,其中OSS版本是免費(fèi),Pro專業(yè)版需要收費(fèi).OSS對(duì)于日常的倉(cāng)庫(kù)管理已經(jīng)足夠用.
Nexus OSS支持二進(jìn)制文件安裝和docker安裝,這里選擇docker安裝,簡(jiǎn)單方便.
運(yùn)行以下命令即可完成安裝
$ docker run -d -p 8081:8081 sonatype/nexus3 #可以掛載本地目錄做數(shù)據(jù)持久化 $ mkdir /some/dir/nexus-data && chown -R 757 /some/dir/nexus-data $ docker run -d -p 8081:8081 -v /some/dir/nexus-data:/nexus-data sonatype/nexus3
在nexus3官方docker倉(cāng)庫(kù)說(shuō)明文檔里掛載目錄設(shè)置的權(quán)限為200但實(shí)際安裝的時(shí)候無(wú)法啟動(dòng),權(quán)限不夠,錯(cuò)誤如下:
mkdir: cannot create directory "../sonatype-work/nexus3": Permission denied mkdir: cannot create directory "../sonatype-work/nexus3": Permission denied Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to Permission denied Warning: Cannot open log file: ../sonatype-work/nexus3/log/jvm.log Warning: Forcing option -XX:LogFile=/tmp/jvm.log Unable to update instance pid: Unable to create directory /nexus-data/instances /nexus-data/log/karaf.log (Permission denied) Unable to update instance pid: Unable to create directory /nexus-data/instances Exception in thread "Thread-2" java.lang.SecurityException: Could not lock User prefs. Lock file access denied. at java.util.prefs.FileSystemPreferences.checkLockFile0ErrorCode(FileSystemPreferences.java:937) at java.util.prefs.FileSystemPreferences.lockFile(FileSystemPreferences.java:925) at java.util.prefs.FileSystemPreferences.sync(FileSystemPreferences.java:729) at java.util.prefs.FileSystemPreferences.flush(FileSystemPreferences.java:824) at java.util.prefs.FileSystemPreferences.syncWorld(FileSystemPreferences.java:464) at java.util.prefs.FileSystemPreferences.access$1200(FileSystemPreferences.java:50) at java.util.prefs.FileSystemPreferences$4$1.run(FileSystemPreferences.java:442)
修改為757后正常啟動(dòng).等待啟動(dòng)完,訪問(wèn)http://host:8081測(cè)試是否安裝成功.
Nextus3搭建docker私有倉(cāng)庫(kù)Nextus3倉(cāng)庫(kù)都有三種類型
hosted(本地類型)資產(chǎn)的提交和拉取都基于本地存儲(chǔ)
proxy(代理類型)本地不做數(shù)據(jù)存儲(chǔ),可以和hosted配合
group(組合類型)可以組合多個(gè)hosted和proxy并按順序,并提供統(tǒng)一訪問(wèn)地址
docker本地倉(cāng)庫(kù)(hosted)搭建訪問(wèn)http://host:8081登陸,默認(rèn)用戶名密碼admin/admin123
點(diǎn)擊Repository->Blob Stores->Create blob store創(chuàng)建本地存儲(chǔ)
Type:file Name:definesys-docker-store Path:/nexus-data/blobs/definesys-docker-store
因?yàn)橐鎯?chǔ)鏡像請(qǐng)保證該目錄下有足夠空間,可以掛在NAS到該目錄下.
點(diǎn)擊Repositories->Create repositories->docker(hosted)創(chuàng)建本地倉(cāng)庫(kù)
Name(倉(cāng)庫(kù)名稱):definesys-docker-repo Http(倉(cāng)庫(kù)開(kāi)放端口):8001 Docker Registry API Support:必須選上 Storage:選擇剛創(chuàng)建的definesys-docker-store 其余選項(xiàng)默認(rèn)即可
這樣就完成一個(gè)docker私有倉(cāng)庫(kù)的創(chuàng)建,過(guò)程還是很簡(jiǎn)單的.
docker代理倉(cāng)庫(kù)(proxy)搭建點(diǎn)擊Repositories->Create repositories->docker(proxy)創(chuàng)建代理倉(cāng)庫(kù)
Name(倉(cāng)庫(kù)名稱):definesys-docker-proxy Http(倉(cāng)庫(kù)開(kāi)放端口):8002 Docker Registry API Support:必須選上 Proxy->remote storage:https://registry-1.docker.io/ Docker index選擇Use Docker Hub Storage:選擇剛創(chuàng)建的definesys-docker-store這樣就可以和hosted共用一個(gè)存儲(chǔ)實(shí)現(xiàn)本地優(yōu)先本地拉取本地找不到再?gòu)倪h(yuǎn)程倉(cāng)庫(kù)拉取 其余選項(xiàng)默認(rèn)即可docker組合倉(cāng)庫(kù)(group)搭建
Name(倉(cāng)庫(kù)名稱):definesys-docker-group Http(倉(cāng)庫(kù)開(kāi)放端口):8003 Docker Registry API Support:必須選上 Storage:選擇剛創(chuàng)建的definesys-docker-store Group: definesys-docker-repo definesys-docker-proxy 其余選項(xiàng)默認(rèn)即可docker客戶端配置
編輯daemon.json文件
$ vi /etc/docker/daemon.json { "insecure-registries": [ "http://localhost:7001", "http://localhost:7002", "http://localhost:7003" ], "disable-legacy-registry": true }
重啟docker
$ systemctl restart docker
啟動(dòng)Nexus3容器,將三個(gè)端口映射到主機(jī)上
$ docker run -d -p 8081:8081 -p 8001:8001 -p 8003:8003 -p 8002:8002 -v /root/u01/nexus-data:/nexus-data sonatype/nexus3
4.分別登陸三個(gè)倉(cāng)庫(kù)
$ docker login -u admin -p admin123 http://localhost:8001 $ docker login -u admin -p admin123 http://localhost:8002 $ docker login -u admin -p admin123 http://localhost:8003
Nexus會(huì)將登陸信息記錄在~/.docker/config.json,這樣下次就不用再次登陸:
{ "auths": { "http://localhost:8003": { "auth": "YWRtaW46YWRtaW4xMjM=" }, "http://localhost:8001": { "auth": "YWRtaW46YWRtaW4xMjM=" }, "http://localhost:8002": { "auth": "YWRtaW46YWRtaW4xMjM=" } } }docker鏡像上傳
將本地鏡像打tag(這里以u(píng)buntu鏡像為例)上傳到hosted倉(cāng)庫(kù)(8001)
$ docker tag docker.io/ubuntu:15.10 localhost:8001/defiensys-ubuntu:15.10 $ docker push localhost:8001/defiensys-ubuntu:15.10
登陸Nexus3查看結(jié)果
docker鏡像拉取通過(guò)group倉(cāng)庫(kù)
#拉取docker hub上鏡像 $ docker pull localhost:8003/mysql #拉取私服鏡像 $ docker pull localhost:8003/defiensys-ubuntu:15.10Nextus3搭建maven私有倉(cāng)庫(kù)
待續(xù)...
Nextus3搭建npm私有倉(cāng)庫(kù)待續(xù)...
遺留問(wèn)題無(wú)法通過(guò)group上傳鏡像,報(bào)以下錯(cuò)誤
$ docker push localhost:8003/oraclelinux:v1.0 The push refers to a repository [localhost:8003/oraclelinux] 3b431d8f4cd1: Preparing error parsing HTTP 404 response body: invalid character "<" looking for beginning of value: "404 - Nexus Repository Manager "Error 404 Not FoundNot Found
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27441.html
摘要:正好我們?cè)谑褂米鳛榈膫}(cāng)庫(kù),同時(shí)提供了等諸多類型的倉(cāng)庫(kù)功能。值得一提的是,我們可以使用這個(gè)倉(cāng)庫(kù)從和下載鏡像,但是我們不能通過(guò)這個(gè)倉(cāng)庫(kù)推送鏡像到遠(yuǎn)程倉(cāng)庫(kù)。 背景 我們一直使用 harbor 作為docker的鏡像倉(cāng)庫(kù),但Harbor只能作為私有倉(cāng)庫(kù),當(dāng)需要Docker Hub 或 Google Cloud Containers 上的鏡像時(shí),我們只能自己手動(dòng)pull,重新打tag,再push...
摘要:本文章用于描述如何從零開(kāi)始進(jìn)行阿里云倉(cāng)庫(kù)的搭建,以及過(guò)程中遇到的相關(guān)問(wèn)題。涉及的內(nèi)容包括,,,,。目標(biāo)硬盤(pán)掛載阿里云額外購(gòu)買的硬盤(pán)服務(wù),需要僅掛載后才可以正常使用。域名代理免費(fèi)代理的域名通過(guò)阿里云域名解析暴露到外網(wǎng)。 本文章用于描述如何從零開(kāi)始進(jìn)行阿里云倉(cāng)庫(kù)的搭建,以及過(guò)程中遇到的相關(guān)問(wèn)題。涉及的內(nèi)容包括Docker,Nginx,Nexus,Gitlab,Https。 背景 需要搭建一...
摘要:前提好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲抱歉了。熟悉我的人都知道我寫(xiě)博客的時(shí)間比較早,而且堅(jiān)持的時(shí)間也比較久,一直到現(xiàn)在也是一直保持著更新?tīng)顟B(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲:抱歉了!。自己這段時(shí)...
摘要:以便對(duì)整個(gè)持續(xù)集成印象加深。配置完各環(huán)境發(fā)布腳本后,則可以使用構(gòu)建發(fā)起進(jìn)行觸發(fā)環(huán)境準(zhǔn)備。并會(huì)在遠(yuǎn)程環(huán)境上存放多次發(fā)布的版本,用于回退和切換服務(wù)停用。進(jìn)行等操作,停止原本運(yùn)行的服務(wù)切換啟用。 該文章用于建立一個(gè)小型的基于Walle的持續(xù)集成工具。解決java,react,angular項(xiàng)目的編譯發(fā)布。以便對(duì)整個(gè)持續(xù)集成印象加深。官方網(wǎng)站:https://walle-web.io/ 適用...
摘要:本文介紹如何使用搭建私有倉(cāng)庫(kù),以及使用時(shí)如何映射到本地目錄,方便簡(jiǎn)單對(duì)倉(cāng)庫(kù)進(jìn)行各種操作。其次,創(chuàng)建目錄,并添加的配置文件。當(dāng)需要把某個(gè)項(xiàng)目發(fā)布到私有庫(kù)時(shí),直接。使用包名,即可安裝私有包了。本文介紹如何使用 verdaccio 搭建私有npm倉(cāng)庫(kù),以及使用 docker 時(shí)如何映射到本地目錄,方便簡(jiǎn)單對(duì)倉(cāng)庫(kù)進(jìn)行各種操作。系統(tǒng)環(huán)境是 Linux。 verdaccio verdacci...
閱讀 2584·2021-11-22 09:34
閱讀 959·2021-11-19 11:34
閱讀 2813·2021-10-14 09:42
閱讀 1497·2021-09-22 15:27
閱讀 2396·2021-09-07 09:59
閱讀 1745·2021-08-27 13:13
閱讀 3440·2019-08-30 11:21
閱讀 783·2019-08-29 18:35