<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          linux搭建harbor私服

          共 4678字,需瀏覽 10分鐘

           ·

          2021-12-31 21:37

          前言

          前幾天我們分享了manjaro環(huán)境下構(gòu)建k8s集群的過程,其中我提到我順手搭建了harbor環(huán)境,所以今天我想抽點時間來簡單分享下如何在linux環(huán)境下搭建harbor平臺。

          Harbor

          我們先來看下harbor是什么?

          harbor是一個容器鏡像倉庫的開源項目,它主要為我們提供了一套鏡像存儲管理的解決方案,我們簡單將它理解為鏡像倉庫即可。它中文的意思是港口,也就是存放鏡像的倉庫,而docker是碼頭工人的意思,也就是鏡像的搬運工,突然想起了某泉的廣告詞,對docker來說,也同樣適用:我不生產(chǎn)鏡像,我只是鏡像的搬運工。

          Harbor是為企業(yè)用戶設(shè)計的容器鏡像倉庫開源項目,包括了權(quán)限管理(RBAC)、LDAP、審計、安全漏洞掃描、鏡像驗真、管理界面、自我注冊、HA 等企業(yè)必需的功能,同時針對中國用戶的特點,設(shè)計鏡像復(fù)制和中文支持等功能。

          準(zhǔn)備工作

          因為我們的harbor環(huán)境是基于docker-compose構(gòu)建的,所以我們先要安裝docker-compose,這里以manjaro為例,其他環(huán)境類似:

          sudo?pacman?-S?docker-compose
          #?ubuntu環(huán)境可有通過如下命令
          sudo?apt?install?sudo?docker-compose

          版本沒有要求,我目前安裝的是2.2.2:

          安裝完成后可以通過下面的命令測試下:

          docker-compose?-v

          執(zhí)行結(jié)果類似上圖,則表明安裝成功。

          下載安裝

          下載腳本

          harbor本身是開源項目,可以直接訪問項目github倉庫進(jìn)行下載,項目地址如下:

          https://github.com/goharbor/harbor

          不喜歡自己動手的小伙伴可以直接通過如下命令下載:

          wget?https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz

          下載完成后直接解壓即可,命令如下:

          tar?-zxvf?harbor-offline-installer-v2.4.1.tgz

          解壓之后文件目錄如下:

          下面我們只需要修改配置文件即可。

          配置

          解壓之后的harbor目錄下有一個名為harbor.yml.tmpl的配置文件模板,我們需要基于這個文件構(gòu)建我們的配置文件(配置模板),這里直接復(fù)制即可,復(fù)制之后的目標(biāo)文件名為harbor.yml(強制,如果要用其他名稱,就需要修改intall.sh腳本)。

          下面我們看下如何配置,這里我直接放上我的配置和各個配置的作用:

          #?Configuration?file?of?Harbor

          #?這里配置的是我們harbor服務(wù)的訪問ip,管理端也是通過這個地址訪問的,不要使用localhost?或者?127.0.0.1,因為Harbor是需要外部客戶端訪問的
          hostname:?192.168.0.102

          #?http的訪問配置
          http:
          ??#?http訪問端口,?默認(rèn)80.?如果啟用了https協(xié)議,?則會通過這個端口重定向到https端口
          ??port:?88

          #?harbor管理端的登錄密碼,默認(rèn)賬戶是admin
          harbor_admin_password:?Harbor12345

          #?Harbor?DB設(shè)置
          database:
          ??#?數(shù)據(jù)庫
          ??password:?root123
          ??#?idle最大連接數(shù)
          ??max_idle_conns:?50
          ??#?數(shù)據(jù)庫最大連接數(shù),默認(rèn)1024(postgres)
          ??max_open_conns:?100

          #?默認(rèn)數(shù)據(jù)卷()
          data_volume:?/data
          #?以下數(shù)據(jù)我沒有改動
          trivy:
          ??ignore_unfixed:?false

          ??skip_update:?false
          ??#
          ??#?insecure?The?flag?to?skip?verifying?registry?certificate
          ??insecure:?false

          jobservice:
          ??#?Maximum?number?of?job?workers?in?job?service
          ??max_job_workers:?10

          notification:
          ??#?Maximum?retry?count?for?webhook?job
          ??webhook_job_max_retry:?10

          chart:
          ??#?Change?the?value?of?absolute_url?to?enabled?can?enable?absolute?url?in?chart
          ??absolute_url:?disabled

          #?Log?configurations
          log:
          ??#?options?are?debug,?info,?warning,?error,?fatal
          ??level:?info
          ??#?configs?for?logs?in?local?storage
          ??local:
          ????rotate_count:?50
          ????rotate_size:?200M
          ????#?The?directory?on?your?host?that?store?log
          ????location:?/var/log/harbor

          _version:?2.4.0
          proxy:
          ??http_proxy:
          ??https_proxy:
          ??no_proxy:
          ??components:
          ????-?core
          ????-?jobservice
          ????-?trivy

          除了上面的ip、端口以及連接數(shù),其他的配置我都用的是默認(rèn)配置,修改完成之后,我們就可以安裝了。

          安裝

          安裝也很簡單,我們直接執(zhí)行install.sh腳本即可,為了保險起見,推薦使用sudo操作:

          sudo?./install.sh

          然后靜靜等待安裝完成即可:

          看到started successfully,就說明harbor已經(jīng)安裝完成了,我們可以通過瀏覽器訪問下。

          測試

          用瀏覽器打開我們剛才配置的地址和端口,可以看到如下頁面:

          至此,我們的harbor就安裝完成了,是不是很簡單呢?

          使用

          下面我們再來看下具體如何使用harbor

          通過我們前面配置的密碼和用戶名(默認(rèn)admin),登錄之后我們會看到如下頁面:

          正常情況下,你應(yīng)該只能看到library這個項目,你可以在這里創(chuàng)建自己的項目,然后后面我們可以通過dockerharbor的項目中推送鏡像。

          鏡像操作

          在通過dockerharbor推送鏡像之前,我們先要在docker中配置本地倉庫,首先我們要打開docker的配置文件:

          sudo?vim?/etc/docker/daemon.json

          向其中增加insecure-registries的配置信息:

          ?"insecure-registries":["http://192.168.0.102:88"]

          最終配置完的效果如下:

          這里的http://192.168.0.102:88就是我前面配置的harbor的地址和端口,配置完成后我們才能通過docker正常登錄,否則會報錯。

          登錄

          登錄命令如下:

          sudo?docker?login?-u?admin?-p?Harbor12345?192.168.0.102:88

          這里簡單解釋下,-u后面是登錄用戶名,-p是登錄密碼,再后面是地址和端口

          正常情況下,最后會提示Login Succeeded,表明配置都是ok的,這時候我們就可以通過dokcer命令向harbor中推送鏡像了。

          推送鏡像

          關(guān)于spring boot項目構(gòu)建docker鏡像的相關(guān)內(nèi)容可以參考之前我們分享的內(nèi)容:

          https://mp.weixin.qq.com/s?__biz=MjM5NDMwNzA0NQ==&mid=2648419079&idx=1&sn=077f24cdd1308041e238ffa4705b5bb1&chksm=bea6c58d89d14c9b4cb4a1eea431c81af338c534dcaf01a827b7511815f8a7f5e69f20e91a35&token=1495367877&lang=zh_CN#rd

          首先我們通過docker build構(gòu)建鏡像:

          然后通過tag命令創(chuàng)建標(biāo)簽,再通過push命令將鏡像推送到harbor倉庫中,這里以我剛創(chuàng)建的syske項目為例。其實,harbor的項目下面是有鏡像推送命令的,我們只需要復(fù)制出來替換其中的REPOSITORYTAG即可:

          tag命令

          復(fù)制出來的tag命令如下:

          docker?tag?SOURCE_IMAGE[:TAG]?192.168.0.102:88/syske/REPOSITORY[:TAG]

          替換之后如下:

          docker?tag?springboot-learning:v1?192.168.0.102:88/syske/springboot-learning:v1

          如果在執(zhí)行tag命令過程中提示權(quán)限不足,可以通過sudo操作:

          操作不報錯,則表明操作成功。

          push命令

          復(fù)制出來的push命令如下:

          docker?push?192.168.0.102:88/syske/REPOSITORY[:TAG]

          替換之后如下:

          docker?push?192.168.0.102:88/syske/springboot-learning:v1

          tag命令類似,這個命令也是有權(quán)限要求的:

          然后換成sudo重新操作即可:

          推送成功后,我們可以登錄harbor看下:

          可以看到harbor中已經(jīng)有了我們剛剛推送的鏡像,這樣我們就可以在k8sdocker等環(huán)境使用我們的鏡像了

          拉取鏡像

          拉取鏡像的命令,我們同樣也可以在harbor頁面復(fù)制:

          然后我們就可以通過復(fù)制到的命令拉取我們的鏡像

          docker?pull?192.168.0.102:88/syske/springboot-learning:v1

          或者在k8s直接使用:

          結(jié)語

          好了,今天的內(nèi)容就到這里吧,下面我們做一個簡單的總結(jié)。

          今天我們主要分享了harbor私服的搭建過程,其中包括harbor的基本配置和簡單使用,當(dāng)然從內(nèi)容上來講,這些都屬于比較基礎(chǔ)的操作,但是經(jīng)過這樣的流程探索和實踐,我相信你也一定對后端開發(fā)部署的流程有了更全面的認(rèn)知和了解,有了這些認(rèn)知,你未來就算使用其他的開發(fā)管理工具,你也會清楚地知道每一個組件的用途,幫助你更好地使用這些工具。另外,就算未來讓你拋開這些工具自己動手去操作,你也不至于手足無措,因為你掌握了這些組件最基本的內(nèi)部工作原理。

          當(dāng)然,harbor也只能算企業(yè)應(yīng)用開發(fā)部署中的一個小組件,畢竟目前很多公司已經(jīng)上了集成開發(fā)環(huán)境,也就是我們經(jīng)常聽到的CI/CD(持續(xù)集成/持續(xù)交付),這里我放上一張我們公司目前CI/CD的大致流程圖(docker環(huán)境目前已經(jīng)棄用了),目前很多公司可能都是這樣的開發(fā)部署流程,只是工具上會有一些小差異:

          當(dāng)然,有些公司可能是通過jenkins手動打包(包括生成鏡像并推送到私服),然后通過手動重啟容器,這一套手動操作和上面的自動化操作都沒有本質(zhì)上區(qū)別,只是效率更高,流程更規(guī)范而已。

          - END -


          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  9.1成长蘑菇视频 | 欧美日皮视频 | 韩国精品免费观看 | 手机免费看操逼视频 | 黄片无码在线观看 |