Docker私有映象

安全劍客發表於2020-08-15
導讀 映象倉庫作為Docker技術的核心元件之一,其主要作用就是負責映象內容的儲存和分發。Docker映象倉庫從使用範圍來說分為“公有映象倉庫”和“私有映象倉庫”,公有映象倉庫是可以被任何人使用的,例如Docker公司維護的線上儲存庫Docker Hub以及部分雲服務廠商(如阿里雲)提供的線上Docker映象庫等,都屬於公有映象倉庫的範疇。
Docker映象倉庫概述

映象倉庫作為Docker技術的核心元件之一,其主要作用就是負責映象內容的儲存和分發。Docker映象倉庫從使用範圍來說分為“公有映象倉庫”和“私有映象倉庫”,公有映象倉庫是可以被任何人使用的,例如Docker公司維護的線上儲存庫Docker Hub以及部分雲服務廠商(如阿里雲)提供的線上Docker映象庫等,都屬於公有映象倉庫的範疇。

而私有映象倉庫則是指部署在公司或組織內部,用於自身應用Docker映象儲存、分發的映象倉庫。在構建公司內部使用的自動化釋出系統的過程中,從安全的角度出發,應用的打包映象一般情況下只會被儲存在私有映象倉庫中,CI/CD流程的銜接點也是透過向私有映象倉庫上傳映象和拉取映象的操作來完成的。

在現階段主流的企業級私有映象倉庫構建方案中,比較流行的是:開源的企業級Docker映象倉庫——Harbor、以及商業映象倉庫——JFrog Artifactory。這兩種Docker映象倉庫各自都有一定的市場,就作者所工作過的公司來說使用Harbor和JFrog Artifactory作為私有映象倉庫的都有,但就成熟度和功能性完整性來說JFrog Artifactory作為商業級解決方案會更具優勢,所以目前國內有錢的網際網路公司選擇JFrog Artifactory作為企業級私有倉庫的比較多,本文的主要內容是演示如何透過Docker的方式來快速部署JFrog Artifactory並將其作為Devops自動釋出系統的私有映象倉庫。

JFrog Artifactory映象倉庫部署

根據官方介紹JFrogArtifactory是目前全球唯一一個支援所有開發語言,任意維度的後設資料檢索、跨語言正反向解析,並擁有深度遞迴、支援多活異地災備的企業級、高可用二進位制製品管理倉庫。這裡的二進位制製品是指構建過程的輸出物,包括軟體包、測試報告,應用配置檔案等可在伺服器上直接執行或可檢視的二進位制軟體製品。

JFrog Artifactory支援多種倉庫型別,除了Docker映象倉庫外還支援Maven、Npm等其他型別的倉庫。在正式企業級環境中映象倉庫的部署要考慮高可用、擴充套件性等要求,關於這方面的部署方式可以參考其他官方文件,本環節為了方便演示將採用Docker的方式進行部署,具體步驟如下:

1)、獲取最新JFrog Artifactory社群版Docker映象, 如下:

$ docker pulldocker.bintray.io/jfrog/artifactory-jcr:latest

由於網路原因上述下載過程可能會比較慢,有條件的讀者可以藉助科學上網方式進行映象獲取。完成後可透過 檢視具體的映象資訊,如下:

$ docker images

2)、建立資料卷。考慮到映象倉庫作為持久化儲存服務,這裡為其建立單獨的資料卷,命令如下:

#建立資料目錄 
$ mkdir -p ~/docker/volume/artifactory
#切換到上述目錄後執行資料卷建立命令 
$ 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

完成上述操作後,如果容器執行成功,此時瀏覽器輸入訪問地址:,將會顯示如圖所示介面:

Docker私有映象Docker私有映象

輸入初始密碼(admin/password)後,會繼續跳轉到管理員密碼重置介面,如圖所示:

Docker私有映象Docker私有映象

依據步驟設定好管理員密碼。之後會繼續要求設定如訂閱郵箱、訪問網站域名、代理配置等資訊,這裡可以暫時忽略直接跳到倉庫建立的頁面,如圖所示:

Docker私有映象Docker私有映象

從上圖可以看到JFrogArtifactory支援多種型別的倉庫,例如Maven私有倉庫也可以透過JFrog Artifactory來進行配置,由於是社群版所以很多其他型別的倉庫並未免費開放!這裡我們只選擇建立Docker映象倉庫,建立後效果如圖所示:

Docker私有映象Docker私有映象

如上圖所示,預設建立了一個RepositoryKey為docker-local的本地倉庫。在實際工作場景中為了便於Docker映象的管理,可以分別為同一程式碼空間的專案建立單獨的映象倉庫,例如我們本書中所有的Spring Cloud實戰專案建立一個單獨映象倉庫,點選右上角“New LocalRepository”,如圖所示:

Docker私有映象Docker私有映象

到這裡JFrog Repository容器映象倉庫的基本部署工作就完成了,後面自動化釋出系統中的CI/CD流程將以此為基礎實現Docker映象的儲存、分發!關注我後續的內容將向你介紹如何構建一套完整的CI/CD自動釋出系統!

原文來自:  https://www.linuxprobe.com/docker-private-image.html


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2712069/,如需轉載,請註明出處,否則將追究法律責任。

相關文章