国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成

這篇具有很好參考價值的文章主要介紹了jenkins+docker集成harbor實現(xiàn)可持續(xù)集成。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、前言

二、Harbor介紹

2.1 什么是Harbor

2.1.1 Harbor架構(gòu)圖

2.2 Harbor 特征

2.3 Harbor 核心組件

2.4 Harbor使用場景

三、Harbor部署

3.1 安裝docker compose

3.1.1 安裝方式一

3.2 基于python3 pip安裝docker compose

3.2.1 安裝python3

3.2.2 安裝python-pip3并升級

3.2.3 執(zhí)行命令安裝 docker-compose

3.2.4 查看docker-compose版本

3.3 安裝horbor

3.3.1 下載安裝包

3.3.2 解壓安裝包

3.3.3 修改配置文件

3.3.4 執(zhí)行安裝

3.3.5 環(huán)境檢查

3.3.6 瀏覽器訪問

四、Harbor基本使用

4.1 機器準(zhǔn)備

4.1.1 配置服務(wù)器免登

4.2?推送鏡像到Harbor自定義鏡像倉庫

4.2.1 創(chuàng)建項目

4.2.2 修改docker配置文件

4.2.3 鏡像打標(biāo)

4.2.4 推送鏡像

4.3 jenkins任務(wù)集成Harbor

4.3.1 修改jenkins的任務(wù)配置

4.3.2 重新執(zhí)行任務(wù)

4.4?其他機器獲取harbor鏡像

4.4.1 A、B機器添加授信

4.4.2 刪除并重新推送鏡像

4.4.3 其他機器獲取鏡像

4.4.4 拉取鏡像

4.5 使用jenkins任務(wù)進行分發(fā)鏡像

4.5.1?配置全局ssh憑證

4.5.2?配置ssh連接信息

4.5.3 配置測試任務(wù)

五、鏡像倉庫備選方案

5.1 阿里云鏡像倉庫

5.2 dockerhub

5.3?Nexus Repository Manager

5.4?JFrog Artifactory

六、docker可視化管理工具

七、寫在文末


一、前言

在上一篇,我們搭建了jenkins,并通過配置jenkins任務(wù)的方式完成了從拉取代碼,到打包構(gòu)建,最后制作docker鏡像的完整步驟。但是到這里,我們會發(fā)現(xiàn)仍然有兩個問題。

問題一:資源占用:

1、構(gòu)建出來的鏡像仍然留在jenkins這臺機器上,久而久之,這臺機器的空間將不堪重負(fù);

2、如果直接運行鏡像,這些鏡像將會占用當(dāng)前jenkins這臺機器的資源,如果后續(xù)要運行更多的鏡像,這臺機器肯定吃不消

問題二:缺少鏡像的統(tǒng)一分發(fā)和管理:

基于問題一,如何管理這些鏡像呢?既然鏡像不能一直留在這臺jenkins機器,就需要引入其他的容器管理平臺,該平臺能夠?qū)崿F(xiàn)docker鏡像的常規(guī)管理,比如容器的啟停,刪除,pull、push等操作。

基于上述這兩個最緊迫的問題,該使用什么方法解決呢?這就需要引入docker的鏡像管理工具。本文以Harbor為例進行詳細的說明。

二、Harbor介紹

官方文檔:Harbor docs | Harbor 1.10 Documentation

2.1 什么是Harbor

Harbor 是一個開源的容器鏡像倉庫,它提供了一個安全、可信賴的方式來存儲和管理容器鏡像。

  • Harbor 支持用戶創(chuàng)建自己的私有鏡像倉庫,可以在其中存儲各種容器鏡像,并且可以對這些鏡像進行權(quán)限管理、漏洞掃描、復(fù)制、備份等操作。

  • Harbor 還提供了 Web 界面和 RESTful API,使用戶可以方便地進行鏡像管理和操作。

  • 通過 Harbor,用戶可以更加輕松地構(gòu)建、部署和運行容器化應(yīng)用。

2.1.1 Harbor架構(gòu)圖

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

2.2 Harbor 特征

Harbor 具備如下特征:

  • 基于角色的訪問控制

    • 用戶與Docker鏡像倉庫通過“項目”進行組織管理,一個用戶可以對多個鏡像倉庫在同一個命名空間(project)里有不同的權(quán)限。

  • 圖形化用戶界面

    • 用戶可以通過瀏覽器來瀏覽,檢索當(dāng)前Docker鏡像倉庫,管理項目和命名空間。

  • 鏡像復(fù)制

    • 鏡像可以在多個Registry實例中復(fù)制(同步)。尤其適合于負(fù)載均衡、高可用,混合云和多云的場景。

  • 部署簡單

    • 提供在線和離線兩種安裝工具,也可以安裝到vSphere平臺(OVA方式)虛擬設(shè)備。

  • RESTful API

    • RESTful API 提供給管理員對于Harbor更多的操控,使得其它管理軟件集成變得更容易。

  • AD/LDAP支持

    • Harbor可以集成企業(yè)內(nèi)部已有的AD/LDAP,用于鑒權(quán)認(rèn)證管理。

  • 國際化

    • 已擁有英文、中文、德文、日文和俄文的本地化版本。更多的語言將會添加進來。

  • 審計管理

    • 所有針對于鏡像倉庫的操作都可以被記錄追溯,用于審計管理。

2.3 Harbor 核心組件

結(jié)合上述Harbor的架構(gòu),下面總結(jié)一下Harbor中涉及到的組件。

Harbor的Registry,UI,token等服務(wù),通過一個前置的反向代理統(tǒng)一接收瀏覽器、Dockerfile客戶端的請求,并將請求轉(zhuǎn)發(fā)給后端不同的服務(wù)。

Registry

負(fù)責(zé)存儲Docker鏡像,并處理docker push/pull 命令。由于我們要對用戶進行訪問控制,即不同用戶對Docker image有不同的讀寫權(quán)限,Registry會指向一個token服務(wù),強制用戶的每次docker pull/push請求都要攜帶一個合法的token,Registry會通過公鑰對token進行解密驗證。

Core services

這是Harbor的核心功能,主要提供以下服務(wù)

  • UI:提供圖形化界面,幫助用戶管理Registry上的鏡像,并對用戶進行授權(quán)

  • WebHook:為了及時獲取Registry上image狀態(tài)變化的情況,在Registry上配置webhook,把狀態(tài)變化傳遞給UI模塊。

  • Token:負(fù)責(zé)根據(jù)用戶權(quán)限給每個docker push/pull命令簽發(fā)token,Docker客戶端向-Registry服務(wù)發(fā)起的請求,如果不包含token,會被重定向到這里,獲得token后再重新向Registry進行請求

Database

為core services提供數(shù)據(jù)庫服務(wù),負(fù)責(zé)儲存用戶權(quán)限、審計日志、Docker image分組信息等數(shù)據(jù)

Job Services

提供鏡像遠程復(fù)制功能,可以把本地鏡像同步到其他Harbor實例中。

Log Collector

為了幫助監(jiān)控Harbor運行,負(fù)責(zé)收集其組件的log,供日后進行分析。

2.4 Harbor使用場景

Harbor主要有如下使用場景

  • 構(gòu)建和管理私有鏡像倉庫:組織可以使用Harbor搭建自己的私有Docker Registry,方便存儲和管理內(nèi)部開發(fā)的鏡像,保護知識產(chǎn)權(quán)和數(shù)據(jù)隱私。

  • 安全性管理:Harbor支持用戶認(rèn)證、訪問控制、鏡像簽名等安全功能,確保鏡像的安全性,防止惡意鏡像的注入。

  • 鏡像復(fù)制和同步:Harbor可以配置多個節(jié)點,實現(xiàn)鏡像的復(fù)制和同步,方便在不同地區(qū)或部門之間共享鏡像。

  • CI/CD集成:Harbor可以與CI/CD工具集成,如Jenkins、GitLab等,實現(xiàn)自動化構(gòu)建、測試和部署。

接下來,將演示基于centos7系統(tǒng)演示如何搭建Harbor。

三、Harbor部署

3.1 安裝docker compose

由于Harbor在后續(xù)對docker鏡像管理和操作中,需要進行鏡像的編排,需要用到docker compose,因此先安裝docker compose。參考下面的步驟進行安裝,這里提供了兩種方式進行選擇。

3.1.1 安裝方式一

參照下面的命令執(zhí)行安裝

#獲取安裝包
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#授權(quán)
chmod +x /usr/local/bin/docker-compose

#創(chuàng)建軟連接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

#查看docker-compose版本
docker-compose --version

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

在實際操作時發(fā)現(xiàn),使用這種方式安裝在拉取github的包時會非常慢,下面推薦第二種方式安裝。

3.2 基于python3 pip安裝docker compose

3.2.1 安裝python3

sudo yum install python3

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.2.2 安裝python-pip3并升級

yum -y install python3-pip
pip3 install --upgrade pip

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.2.3 執(zhí)行命令安裝 docker-compose

pip3 install docker-compose

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.2.4 查看docker-compose版本

docker-compose --version

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

最后重啟docker

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3 安裝horbor

3.3.1 下載安裝包

版本可以自行選擇,推薦使用2.x版本的

wget --no-check-certificate https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.2 解壓安裝包

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.3 修改配置文件

進入解壓后的harbor目錄,修改 harbor.yml.tmpl 配置文件,注意復(fù)制一個配置文件

cp harbor.yml.tmpl harbor.yml

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

修改hostname:

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

注釋https

  • 后續(xù)使用https訪問的時候可以再配置,這里演示使用http;

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

需要關(guān)注的其他配置

  • 默認(rèn)監(jiān)聽端口;
  • 初始化密碼;

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.4 執(zhí)行安裝

配置修改完成,保存退出之后,直接調(diào)用目錄下的安裝腳本,這個過程可能比較漫長

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

直到看到下面的信息

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

補充

如何移除harbor已經(jīng)安裝的容器呢,使用命令:docker-compose down

3.3.5 環(huán)境檢查

使用docker ps 命令檢查一下,可以看到harbor啟動了很多個容器

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.6 瀏覽器訪問

瀏覽器訪問 IP:80,就來到下面的登錄頁面,登錄賬戶:admin/Harbor12345

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

登錄之后來到如下控制臺主頁

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

界面上的各個菜單的功能有興趣的同學(xué)可以繼續(xù)深入研究,這里不再過多展開了。

四、Harbor基本使用

4.1 機器準(zhǔn)備

為了后面的效果演示,需要準(zhǔn)備兩臺服務(wù)器

機器 作用 備注
機器A 部署jenkins,Harbor服務(wù) 內(nèi)存需要大點,上一篇使用該機器部署jenkins
機器B 業(yè)務(wù)服務(wù)器,部署docker鏡像使用

?

?

4.1.1 配置服務(wù)器免登

為了在jenkins配置任務(wù)時能夠方便的操作遠程機器,建議設(shè)置下免登,即配置jenkins機器與目標(biāo)業(yè)務(wù)服務(wù)器的免登授信操作,參考下面的操作步驟

機器A執(zhí)行下面的命令

ssh-keygen -t rsa

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

將上一步生成的文件遠程拷貝到機器B的相應(yīng)目錄下

cd .ssh
scp ./id_rsa.pub root@B機器公網(wǎng)IP:/root/.ssh/authorized_keys

拷貝完成后,使用ssh命令登錄下B機器

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.2?推送鏡像到Harbor自定義鏡像倉庫

4.2.1 創(chuàng)建項目

即創(chuàng)建一個新的倉庫,用于管理鏡像

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

創(chuàng)建完成后,列表中多了一條數(shù)據(jù)

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.2.2 修改docker配置文件

將下面的這行配置添加到docker的daemon.json文件中,找到insecure-registries標(biāo)簽追加即可

cd /etc/docker
vi daemon.json
Harbor部署的服務(wù)機器IP:80

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

加載配置文件并重啟docker

systemctl daemon-reload
systemctl restart docker

4.2.3 鏡像打標(biāo)

在上一篇中,我們通過jenkins構(gòu)建出來了一個springboot工程的鏡像

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

但是如果要將這個鏡像直接推送到Harbor倉庫還不行,必須要按照Harbor的要求進行命名并重新打標(biāo),參考下面的命令執(zhí)行;

docker tag 996ae7100be7 Harbor服務(wù)器地址:80/public/boot-docker:1.0

打完標(biāo)簽之后再次查看鏡像,可以發(fā)現(xiàn)新的鏡像已經(jīng)顯示出來了,細心的同學(xué)會發(fā)現(xiàn),它們的鏡像名是一樣的

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.2.4 推送鏡像

登錄Harbor

docker login -u admin -p Harbor12345 Harbor機器IP:8085

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

使用下面的命令,推送鏡像到Harbor,這個過程根據(jù)網(wǎng)絡(luò)情況可能有點漫長

docker push 打完tag的鏡像名

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

push完成之后,可以在Harbor的控制臺界面,在public項目中就能看到剛剛推上來的鏡像了

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.3 jenkins任務(wù)集成Harbor

基于上一篇中我們在jenkins中創(chuàng)建的測試任務(wù),我們做一下修改,將構(gòu)建完成的鏡像推送至Harbor的倉庫中。

4.3.1 修改jenkins的任務(wù)配置

在post steps里面,添加如下的腳本(僅供參考,實際操作時還需要結(jié)合自身的機器情況),該腳本主要做了下面幾件事:

  • 基于Dockerfile將maven構(gòu)建出來的jar包制作成docker鏡像;

  • 刪除之前通過構(gòu)建的帶標(biāo)簽版本號的鏡像;

  • 鏡像打標(biāo)簽;

  • 登錄Harbor;

  • 將打標(biāo)簽的鏡像推送到Harbor的倉庫(上面創(chuàng)建的public項目倉庫);

#!/usr/bin/env bash
echo '打包完成,開始構(gòu)建鏡像'
#dockerfile:build
docker build -t boot-docker:1.0 .

sleep 10
docker rmi -f 打完tag的鏡像

sleep 10
docker tag 原鏡像

sleep 10
echo '登錄harbor'
docker login -u admin -p Harbor12345 Harbor機器IP:8085

sleep 10
docker push 本次被打完tag的鏡像

echo '完成docker鏡像推送'

4.3.2 重新執(zhí)行任務(wù)

保存上述配置,重新點擊執(zhí)行任務(wù),等待構(gòu)建完成即可

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

構(gòu)建完成后,檢查鏡像,可以看到帶有2.0標(biāo)簽的鏡像就創(chuàng)建出來了

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

同時在Harbor控制臺的public項目下,也能看到上面推送過來的docker鏡像

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.4?其他機器獲取harbor鏡像

另有一臺新機器,即上述的B機器,需要從harbor鏡像倉庫中拉取鏡像到自己機器上面部署,該如何實現(xiàn)呢?

4.4.1 A、B機器添加授信

在harbor機器上面的docker配置文件中添加如下配置

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

保存后重新加載配置,并重啟docker

systemctl daemon-reload 
systemctl restart docker

建議在A,B兩臺機器上均做此配置,避免后面出現(xiàn)其他的錯誤(后文會提到),簡單來說,就是將各自的機器IP配置到 insecure-registries中即可。

4.4.2 刪除并重新推送鏡像

刪除原有的鏡像

docker rmi -f c9bc81de8fb3

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

最后通過jenkins任務(wù)或命令重新推送鏡像

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.4.3 其他機器獲取鏡像

現(xiàn)在假設(shè)我們登錄到了另一臺機器,假設(shè)為B機器,即上述授信配置中的這臺機器,使用docker命令登錄harbor

docker login -u admin -p Harbor12345 Harbor部署機器:8085

如果出現(xiàn)下面的錯誤,表面在B機器的docker配置中,認(rèn)為從上述的Harbor機器登錄是不可信的

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

遇到這個問題時,需要將Harbor機器的docker配置,拷貝到B機器上來,按照上面同樣的方式,修改一下這里的daemon.json配置文件,將Harbor機器的IP信息配置進去

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

最后加載B機器的docker配置,然后重啟docker,再次使用Docker命令登錄Harbor倉庫,此時就登錄進來了

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.4.4 拉取鏡像

上一步登錄成功后,就可以遠程拉取Harbor鏡像倉庫中的鏡像了

docker pull 前面最新打完tag的標(biāo)簽

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

拉取完成后,使用 docker images命令就能看到上面的那個鏡像了,后續(xù)就可以使用docker命令直接啟動鏡像即可。

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.5 使用jenkins任務(wù)進行分發(fā)鏡像

上面使用jenkins任務(wù)將構(gòu)建完的鏡像通過打標(biāo)簽,然后push到了Harbor倉庫中,接下來需要將這些鏡像分發(fā)到具體的業(yè)務(wù)服務(wù)器上,該怎么操作呢?參考下面的流程。

4.5.1?配置全局ssh憑證

找到ssh并安裝

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

設(shè)置憑證,系統(tǒng)管理 —> 添加憑證—>添加域,自定義一個名稱,這里意思是將使用當(dāng)前的jenkins管理你的B機器

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

配置憑證

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.5.2?配置ssh連接信息

通過系統(tǒng)管理 -> 全局配置找到?SSH sites 配置的地方,填寫下面的信息

?jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

配置之后是否可以連接呢?點擊右邊的 Check connection按鈕,如果連接成功,說明配置沒問題了,然后保存配置

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.5.3 配置測試任務(wù)

創(chuàng)建一個新的任務(wù)

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

進入任務(wù)的配置頁面,在構(gòu)建環(huán)境中,在Build Steps里,選擇下面執(zhí)行腳本的一項

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

選擇之后,編寫測試腳本

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

保存配置并執(zhí)行任務(wù),測試成功

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

編寫腳本,將上述最新打標(biāo)的鏡像推送至B機器

echo '在B機器上面執(zhí)行命令'
echo '準(zhǔn)備登錄Harbor機器的倉庫'

docker login -u admin -p Harbor12345 Harbor機器IP:8085

echo '登錄成功,開始拉取鏡像'

docker pull 最新tag的鏡像

echo '拉取鏡像成功'


然后執(zhí)行,等待鏡像的拉取完成即可,如果后續(xù)還有其他命令要執(zhí)行,可以繼續(xù)再在上述的執(zhí)行腳本中添加即可。

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

任務(wù)完成之后,登錄B機器,檢查鏡像是否拉取成功,然后就可以基于當(dāng)前的鏡像進行后續(xù)的操作了。

jenkins+docker集成harbor實現(xiàn)可持續(xù)集成,分布式技術(shù),技術(shù)總結(jié),架構(gòu)技術(shù)棧,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

五、鏡像倉庫備選方案

5.1 阿里云鏡像倉庫

上述關(guān)于鏡像倉庫的選擇,我們使用的是Harbor作為解決方案進行說明,事實上,關(guān)于企業(yè)應(yīng)用的鏡像倉庫,很多云廠商也提供了解決方案,像阿里云,如果你購買了阿里云的云服務(wù)器,可以直接免費使用阿里云提供的鏡像倉庫作為你的鏡像托管中心,這個在另一篇文章中有詳細的說明,可以參考:k8s部署springboot項目,網(wǎng)上的資料也比較多,這也是一種比較成熟的解決方案。

5.2 dockerhub

dockerhub是docker原生的鏡像倉庫,比如大家平時拉取某個技術(shù)組件鏡像時,如果沒有配置鏡像源,將直接從dockerhub上拉取,如果想節(jié)省成本,也可以考慮直接將鏡像推送至dockerhub倉庫。

5.3?Nexus Repository Manager

Sonatype Nexus Repository Manager也是一個流行的倉庫管理工具,支持Docker以及其他包管理器。它提供了企業(yè)級的安全性、可靠性和性能優(yōu)化。

5.4?JFrog Artifactory

JFrog Artifactory是一款企業(yè)級的倉庫管理工具,支持多種軟件包格式,包括Docker鏡像。它提供了高級的存儲管理、權(quán)限控制和審計功能。

六、docker可視化管理工具

除了Harbor,你也可以選擇其他的工具,這里列舉下面幾種常見的Docker鏡像可視化管理工具:

Rancher

Rancher是一個開源的容器管理平臺,提供了圖形化界面來管理Docker容器和集群。它支持多云環(huán)境下的容器部署和管理??梢詤⒖贾暗囊黄P(guān)于rancher的介紹:rancher使用詳解

Shipyard

Shipyard是一個開源的Docker管理工具,提供了Web界面來管理Docker容器、鏡像、網(wǎng)絡(luò)等,還支持集群管理功能。

Portainer

Portainer是一款開源的輕量級Docker管理界面,提供直觀的用戶界面,可以方便地管理Docker容器、鏡像、網(wǎng)絡(luò)等。

Cockpit

Cockpit是一個基于Web的服務(wù)器管理工具,可以用于監(jiān)控和管理Linux系統(tǒng)上的Docker容器和服務(wù)。

七、寫在文末

本文通過較大的篇幅詳細介紹了Harbor這款企業(yè)級docker管理工具的使用,并通過案例演示了如何在jenkins中配置任務(wù)集成Harbor,從而實現(xiàn)鏡像的構(gòu)建推送與分發(fā),希望對看到的同學(xué)有用哦,本篇到此結(jié)束,感謝觀看。文章來源地址http://www.zghlxwxcb.cn/news/detail-852250.html

到了這里,關(guān)于jenkins+docker集成harbor實現(xiàn)可持續(xù)集成的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringBoot+Docker+Git+Jenkins實現(xiàn)簡易的持續(xù)集成和持續(xù)部署

    努力了這么久,但凡有點兒天賦,也該有些成功的跡象了。 本篇文章引導(dǎo)你使用 Jenkins 部署 SpringBoot 項目,同時使用 Docker 和 Git 實現(xiàn)簡單的持續(xù)集成和持續(xù)部署。(項目地址:sso-merryyou) 流程圖如下: push 代碼到 Github 觸發(fā) WebHook 。(因網(wǎng)絡(luò)原因,本篇使用gitee) Jenkins 從倉庫拉去

    2024年02月21日
    瀏覽(47)
  • 基于Jenkins實現(xiàn)Docker應(yīng)用的持續(xù)集成與部署

    基于Jenkins實現(xiàn)Docker應(yīng)用的持續(xù)集成與部署

    1. 服務(wù)器部署安裝有docker 在docker應(yīng)用開發(fā)中最常見的就是開發(fā)Dockerfile文件,可以使用代碼倉庫來管理它。 而在企業(yè)私有開發(fā)環(huán)境中是無法訪問公有代碼倉庫(如Github)的。這時可以搭建私有代碼倉庫。 安裝軟件 sudo yum install -y subversion mod_dav_svn 創(chuàng)建svn倉庫 sudo mkdir -p /srv/s

    2023年04月20日
    瀏覽(16)
  • 一文完成Jenkins+Docker+Git(多分支構(gòu)建)打包、部署,實現(xiàn)可持續(xù)化集成

    一文完成Jenkins+Docker+Git(多分支構(gòu)建)打包、部署,實現(xiàn)可持續(xù)化集成

    官網(wǎng):Jenkins官網(wǎng) 參考:Jenkins簡介 Jenkins是一個開源軟件項目,起源于Hudson(Hudson是商用的),是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個開放易用的軟件平臺,使軟件項目可以進行持續(xù)集成 可在Tomcat等流行的servlet容器中運行,也可獨立運

    2024年01月18日
    瀏覽(28)
  • Docker搭建Jenkins持續(xù)集成

    Docker搭建Jenkins持續(xù)集成

    目錄 注意 前提條件 ?一、安裝Docker 1.1、檢查并清楚系統(tǒng)殘余項,并安裝Docker環(huán)境 ?1.2、安裝下載Docker依賴的工具 ?1.3、添加清華軟件源 ?1.4、更新yum緩存 ?1.5、安裝Docker(CE-社區(qū)版) 1.6、 啟動Docker 1.7、Docker設(shè)置開機自啟 二、下載Jenkins鏡像 ?2.1、掛載目錄 2.2、啟動鏡像

    2024年01月25日
    瀏覽(36)
  • .NET Core部署到linux(CentOS)最全解決方案,入魔篇(使用Docker+Jenkins實現(xiàn)持續(xù)集成、自動化部署)

    .NET Core部署到linux(CentOS)最全解決方案,入魔篇(使用Docker+Jenkins實現(xiàn)持續(xù)集成、自動化部署)

    通過前面三篇: .NET Core部署到linux(CentOS)最全解決方案,常規(guī)篇 .NET Core部署到linux(CentOS)最全解決方案,進階篇(Supervisor+Nginx) .NET Core部署到linux(CentOS)最全解決方案,高階篇(Docker+Nginx 或 Jexus) 通過前面三篇文章的介紹,我們已經(jīng)對.net core多方案部署到linux下有了非常全面的認(rèn)識

    2024年02月02日
    瀏覽(50)
  • Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成

    Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成

    開發(fā)人員每天把代碼提交到Gitlab代碼倉庫 Jenkins從Gitlab中拉取項目源碼,編譯并打成Jar包,然后構(gòu)建成Docker鏡像,將鏡像上傳到Harbor私有倉庫 Jenkins發(fā)送SSH遠程命令,讓生產(chǎn)部署服務(wù)器到Harbor私有倉庫拉取鏡像到本地,然后創(chuàng)建容器 最后,用戶可以訪問到容器 服務(wù)器列表 服務(wù)

    2024年02月13日
    瀏覽(59)
  • Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成之集群部署

    Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成之集群部署

    ? idea中修改注冊中心eureka的配置,單節(jié)點換成集群 ? 在啟動微服務(wù)的時候,加入?yún)?shù): spring.pro?les.active 來讀取對應(yīng)的配置 網(wǎng)關(guān)服務(wù)配置 ? 權(quán)限管理配置 ? 業(yè)務(wù)模塊配置 ? ? ? 該插件可以支持多選框 ? ? ? ? 逗號必須得是英文,否則出錯 ? ? ? 循環(huán)測試代碼檢查 ? ? ?

    2024年02月07日
    瀏覽(21)
  • 基于Docker+Jenkins+Gitl搭建持續(xù)集成環(huán)境(部分關(guān)鍵筆記)

    Jenkins 訪問地址: ip地址:10000 查看密碼 問題 jenkins升級問題 jenkins時區(qū)設(shè)置問題 配置插件更新代理 安裝WebHooks并啟用 配置Jenkins參數(shù) 解決jenkins安裝插件報錯: An error occurred during installation: No such plugin: cloudbees-folder Index of /jenkins/plugins/skip-certificate-check/latest/ | 清華大學(xué)開源軟件

    2024年02月10日
    瀏覽(21)
  • Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成項目優(yōu)化和微服務(wù)集群

    Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成項目優(yōu)化和微服務(wù)集群

    基于 Jenkins+Docker+SpringCloud微服務(wù)持續(xù)集成 作優(yōu)化 上面部署方案存在的問題: 一次只能選擇一個微服務(wù)部署 只有一臺生產(chǎn)者部署服務(wù)器 每個微服務(wù)只有一個實例,容錯率低 優(yōu)化方案: 在一個Jenkins工程中可以選擇多個微服務(wù)同時發(fā)布 在一個Jenkins工程中可以選擇多臺生產(chǎn)服務(wù)

    2024年02月13日
    瀏覽(64)
  • Gitlab + Docker + Jenkins + Harbor實現(xiàn)自動化部署

    Gitlab + Docker + Jenkins + Harbor實現(xiàn)自動化部署

    目錄 文章目錄 前言 一、第一臺服務(wù)器--Jenkins 1、安裝前 2、安裝Jenkins 3、修改正在跑容器的端口 4、Jenkins內(nèi)部插件和配置? 二、第二臺服務(wù)器--Harbor 1、安裝docker-compose 2.安裝及配置 3、卸載Harbor? 4、Harbor啟動后操作 三、第三臺服務(wù)器--生產(chǎn)環(huán)境? 1、配置私服地址 四、Jenkin

    2024年02月14日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包