Docker私有鏡像倉庫是什么?
本文轉(zhuǎn)載自微信公眾號「無敵碼農(nóng)」,作者無敵碼農(nóng) 。轉(zhuǎn)載本文請聯(lián)系無敵碼農(nóng)公眾號。
Docker鏡像倉庫概述
鏡像倉庫作為Docker技術(shù)的核心組件之一,其主要作用就是負(fù)責(zé)鏡像內(nèi)容的存儲和分發(fā)。Docker鏡像倉庫從使用范圍來說分為“公有鏡像倉庫”和“私有鏡像倉庫”,公有鏡像倉庫是可以被任何人使用的,例如Docker公司維護(hù)的在線存儲庫Docker Hub以及部分云服務(wù)廠商(如阿里云)提供的在線Docker鏡像庫等,都屬于公有鏡像倉庫的范疇。
而私有鏡像倉庫則是指部署在公司或組織內(nèi)部,用于自身應(yīng)用Docker鏡像存儲、分發(fā)的鏡像倉庫。在構(gòu)建公司內(nèi)部使用的自動化發(fā)布系統(tǒng)的過程中,從安全的角度出發(fā),應(yīng)用的打包鏡像一般情況下只會被存儲在私有鏡像倉庫中,CI/CD流程的銜接點也是通過向私有鏡像倉庫上傳鏡像和拉取鏡像的操作來完成的。
在現(xiàn)階段主流的企業(yè)級私有鏡像倉庫構(gòu)建方案中,比較流行的是:開源的企業(yè)級Docker鏡像倉庫——Harbor、以及商業(yè)鏡像倉庫——JFrog Artifactory。這兩種Docker鏡像倉庫各自都有一定的市場,就作者所工作過的公司來說使用Harbor和JFrog Artifactory作為私有鏡像倉庫的都有,但就成熟度和功能性完整性來說JFrog Artifactory作為商業(yè)級解決方案會更具優(yōu)勢,所以目前國內(nèi)有錢的互聯(lián)網(wǎng)公司選擇JFrog Artifactory作為企業(yè)級私有倉庫的比較多,本文的主要內(nèi)容是演示如何通過Docker的方式來快速部署JFrog Artifactory并將其作為Devops自動發(fā)布系統(tǒng)的私有鏡像倉庫。
JFrog Artifactory鏡像倉庫部署
根據(jù)官方介紹JFrogArtifactory是目前全球唯一一個支持所有開發(fā)語言,任意維度的元數(shù)據(jù)檢索、跨語言正反向解析,并擁有深度遞歸、支持多活異地災(zāi)備的企業(yè)級、高可用二進(jìn)制制品管理倉庫。這里的二進(jìn)制制品是指構(gòu)建過程的輸出物,包括軟件包、測試報告,應(yīng)用配置文件等可在服務(wù)器上直接運行或可查看的二進(jìn)制軟件制品。
JFrog Artifactory支持多種倉庫類型,除了Docker鏡像倉庫外還支持Maven、Npm等其他類型的倉庫。在正式企業(yè)級環(huán)境中鏡像倉庫的部署要考慮高可用、擴展性等要求,關(guān)于這方面的部署方式可以參考其他官方文檔,本環(huán)節(jié)為了方便演示將采用Docker的方式進(jìn)行部署,具體步驟如下:
1)、獲取最新JFrog Artifactory社區(qū)版Docker鏡像,命令如下:
- $ docker pulldocker.bintray.io/jfrog/artifactory-jcr:latest
由于網(wǎng)絡(luò)原因上述下載過程可能會比較慢,有條件的讀者可以借助科學(xué)上網(wǎng)方式進(jìn)行鏡像獲取。完成后可通過命令查看具體的鏡像信息,如下:
- $ docker images
2)、創(chuàng)建數(shù)據(jù)卷。考慮到鏡像倉庫作為持久化存儲服務(wù),這里為其創(chuàng)建單獨的數(shù)據(jù)卷,命令如下:
- #創(chuàng)建數(shù)據(jù)目錄
- $ mkdir -p ~/docker/volume/artifactory
- #切換到上述目錄后執(zhí)行數(shù)據(jù)卷創(chuàng)建命令
- $ docker volume create data_artifactory
3)、運行Docker容器,命令如下:
- $ docker run --name jfrog-artifactory -d-v data_artifactory:/var/opt/jfrog/artifactory -p 8081:8081 -p 8082:8082docker.bintray.io/jfrog/artifactory-jcr:latest
完成上述操作后,如果容器運行成功,此時瀏覽器輸入訪問地址:http://127.0.0.1:8082,將會顯示如圖所示界面:
輸入初始密碼(admin/password)后,會繼續(xù)跳轉(zhuǎn)到管理員密碼重置界面,如圖所示:
依據(jù)步驟設(shè)置好管理員密碼。之后會繼續(xù)要求設(shè)置如訂閱郵箱、訪問網(wǎng)站域名、代理配置等信息,這里可以暫時忽略直接跳到倉庫創(chuàng)建的頁面,如圖所示:
從上圖可以看到JFrogArtifactory支持多種類型的倉庫,例如Maven私有倉庫也可以通過JFrog Artifactory來進(jìn)行配置,由于是社區(qū)版所以很多其他類型的倉庫并未免費開放!這里我們只選擇創(chuàng)建Docker鏡像倉庫,創(chuàng)建后效果如圖所示:
如上圖所示,默認(rèn)創(chuàng)建了一個RepositoryKey為docker-local的本地倉庫。在實際工作場景中為了便于Docker鏡像的管理,可以分別為同一代碼空間的項目創(chuàng)建單獨的鏡像倉庫,例如我們本書中所有的Spring Cloud實戰(zhàn)項目創(chuàng)建一個單獨鏡像倉庫,點擊右上角“New LocalRepository”,如圖所示:
到這里JFrog Repository容器鏡像倉庫的基本部署工作就完成了,后面自動化發(fā)布系統(tǒng)中的CI/CD流程將以此為基礎(chǔ)實現(xiàn)Docker鏡像的存儲、分發(fā)!關(guān)注我后續(xù)的內(nèi)容將向你介紹如何構(gòu)建一套完整的CI/CD自動發(fā)布系統(tǒng)!
原文地址:https://mp.weixin.qq.com/s/F_JBiXkf-ze-GS3q1C1AnQ