摘要:安裝號稱是世界上最流行的私服管理軟件可以搭建幾乎目前所有常見的倉庫如等更是增加了對倉庫的支持應該是搭建私服的唯一選擇有兩個版本和其中版本是免費專業版需要收費對于日常的倉庫管理已經足夠用支持二進制文件安裝和安裝這里選擇安裝簡單方便運行以下命令
安裝
Nexus號稱是世界上最流行的私服管理軟件(The world"s most popular repository),可以搭建幾乎目前所有常見的倉庫如npm,maven,yum等,Nexus3更是增加了對docker倉庫的支持 ,應該是搭建私服的唯一選擇.
Nexus有兩個版本 Nexus Repository OSS和Nexus Repository Pro,其中OSS版本是免費,Pro專業版需要收費.OSS對于日常的倉庫管理已經足夠用.
Nexus OSS支持二進制文件安裝和docker安裝,這里選擇docker安裝,簡單方便.
運行以下命令即可完成安裝
$ docker run -d -p 8081:8081 sonatype/nexus3 #可以掛載本地目錄做數據持久化 $ 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倉庫說明文檔里掛載目錄設置的權限為200但實際安裝的時候無法啟動,權限不夠,錯誤如下:
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后正常啟動.等待啟動完,訪問http://host:8081測試是否安裝成功.
Nextus3搭建docker私有倉庫Nextus3倉庫都有三種類型
hosted(本地類型)資產的提交和拉取都基于本地存儲
proxy(代理類型)本地不做數據存儲,可以和hosted配合
group(組合類型)可以組合多個hosted和proxy并按順序,并提供統一訪問地址
docker本地倉庫(hosted)搭建訪問http://host:8081登陸,默認用戶名密碼admin/admin123
點擊Repository->Blob Stores->Create blob store創建本地存儲
Type:file Name:definesys-docker-store Path:/nexus-data/blobs/definesys-docker-store
因為要存儲鏡像請保證該目錄下有足夠空間,可以掛在NAS到該目錄下.
點擊Repositories->Create repositories->docker(hosted)創建本地倉庫
Name(倉庫名稱):definesys-docker-repo Http(倉庫開放端口):8001 Docker Registry API Support:必須選上 Storage:選擇剛創建的definesys-docker-store 其余選項默認即可
這樣就完成一個docker私有倉庫的創建,過程還是很簡單的.
docker代理倉庫(proxy)搭建點擊Repositories->Create repositories->docker(proxy)創建代理倉庫
Name(倉庫名稱):definesys-docker-proxy Http(倉庫開放端口):8002 Docker Registry API Support:必須選上 Proxy->remote storage:https://registry-1.docker.io/ Docker index選擇Use Docker Hub Storage:選擇剛創建的definesys-docker-store這樣就可以和hosted共用一個存儲實現本地優先本地拉取本地找不到再從遠程倉庫拉取 其余選項默認即可docker組合倉庫(group)搭建
Name(倉庫名稱):definesys-docker-group Http(倉庫開放端口):8003 Docker Registry API Support:必須選上 Storage:選擇剛創建的definesys-docker-store Group: definesys-docker-repo definesys-docker-proxy 其余選項默認即可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
啟動Nexus3容器,將三個端口映射到主機上
$ 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.分別登陸三個倉庫
$ 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會將登陸信息記錄在~/.docker/config.json,這樣下次就不用再次登陸:
{ "auths": { "http://localhost:8003": { "auth": "YWRtaW46YWRtaW4xMjM=" }, "http://localhost:8001": { "auth": "YWRtaW46YWRtaW4xMjM=" }, "http://localhost:8002": { "auth": "YWRtaW46YWRtaW4xMjM=" } } }docker鏡像上傳
將本地鏡像打tag(這里以ubuntu鏡像為例)上傳到hosted倉庫(8001)
$ docker tag docker.io/ubuntu:15.10 localhost:8001/defiensys-ubuntu:15.10 $ docker push localhost:8001/defiensys-ubuntu:15.10
登陸Nexus3查看結果
docker鏡像拉取通過group倉庫
#拉取docker hub上鏡像 $ docker pull localhost:8003/mysql #拉取私服鏡像 $ docker pull localhost:8003/defiensys-ubuntu:15.10Nextus3搭建maven私有倉庫
待續...
Nextus3搭建npm私有倉庫待續...
遺留問題無法通過group上傳鏡像,報以下錯誤
$ 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27441.html
摘要:正好我們在使用作為的倉庫,同時提供了等諸多類型的倉庫功能。值得一提的是,我們可以使用這個倉庫從和下載鏡像,但是我們不能通過這個倉庫推送鏡像到遠程倉庫。 背景 我們一直使用 harbor 作為docker的鏡像倉庫,但Harbor只能作為私有倉庫,當需要Docker Hub 或 Google Cloud Containers 上的鏡像時,我們只能自己手動pull,重新打tag,再push...
摘要:本文章用于描述如何從零開始進行阿里云倉庫的搭建,以及過程中遇到的相關問題。涉及的內容包括,,,,。目標硬盤掛載阿里云額外購買的硬盤服務,需要僅掛載后才可以正常使用。域名代理免費代理的域名通過阿里云域名解析暴露到外網。 本文章用于描述如何從零開始進行阿里云倉庫的搭建,以及過程中遇到的相關問題。涉及的內容包括Docker,Nginx,Nexus,Gitlab,Https。 背景 需要搭建一...
摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現在也是一直保持著更新狀態。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...
摘要:以便對整個持續集成印象加深。配置完各環境發布腳本后,則可以使用構建發起進行觸發環境準備。并會在遠程環境上存放多次發布的版本,用于回退和切換服務停用。進行等操作,停止原本運行的服務切換啟用。 該文章用于建立一個小型的基于Walle的持續集成工具。解決java,react,angular項目的編譯發布。以便對整個持續集成印象加深。官方網站:https://walle-web.io/ 適用...
摘要:本文介紹如何使用搭建私有倉庫,以及使用時如何映射到本地目錄,方便簡單對倉庫進行各種操作。其次,創建目錄,并添加的配置文件。當需要把某個項目發布到私有庫時,直接。使用包名,即可安裝私有包了。本文介紹如何使用 verdaccio 搭建私有npm倉庫,以及使用 docker 時如何映射到本地目錄,方便簡單對倉庫進行各種操作。系統環境是 Linux。 verdaccio verdacci...
閱讀 2578·2021-11-22 09:34
閱讀 944·2021-11-19 11:34
閱讀 2805·2021-10-14 09:42
閱讀 1482·2021-09-22 15:27
閱讀 2388·2021-09-07 09:59
閱讀 1737·2021-08-27 13:13
閱讀 3436·2019-08-30 11:21
閱讀 777·2019-08-29 18:35