溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor

發(fā)布時(shí)間:2021-10-12 10:42:31 來(lái)源:億速云 閱讀:250 作者:柒染 欄目:云計(jì)算

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Harbor官方介紹 

Harbor是一個(gè)用于存儲(chǔ)和分發(fā)Docker鏡像的企業(yè)級(jí)Registry服務(wù)器,通過(guò)添加一些企業(yè)必需的功能特性,例如安全、標(biāo)識(shí)和管理等,擴(kuò)展了開(kāi)源Docker Distribution。作為一個(gè)企業(yè)級(jí)私有Registry服務(wù)器,Harbor提供了更好的性能和安全。提升用戶使用Registry構(gòu)建和運(yùn)行環(huán)境傳輸鏡像的效率。Harbor支持安裝在多個(gè)Registry節(jié)點(diǎn)的鏡像資源復(fù)制,鏡像全部保存在私有Registry中, 確保數(shù)據(jù)和知識(shí)產(chǎn)權(quán)在公司內(nèi)部網(wǎng)絡(luò)中管控。另外,Harbor也提供了高級(jí)的安全特性,諸如用戶管理,訪問(wèn)控制和活動(dòng)審計(jì)等。

Harbor安裝環(huán)境

Centos: CentOS 7.3
Docker: 18.03.1-ce
Docker-composer: 1.23.2
Harbor: harbor-online-installer-v1.6.2.tgz

可以參考 docker - 在centos7和windows10安裝 、 docker - 鏡像加速器 、 安裝 docker-compose 分別安裝docker engine/docker compose

harbor 1.6.2 需要的運(yùn)行環(huán)境:docker 17.03.0-ce+ and docker-compose 1.10.0+ .

Harbor安裝

Harbor支持在線和離線兩種安裝方式,本文采用在線方式安裝。在線安裝安裝過(guò)程中需要下載docker鏡像,離線包則已經(jīng)有相關(guān)鏡像

離線包可以在百度云盤(pán)下載:

鏈接:https://pan.baidu.com/s/1hWeEu4J-o1LYFrFgWOmQww     提取碼:q9q7

在線安裝包可以在下面的連接下載:

鏈接:https://pan.baidu.com/s/1FbB-QCB63k6psOtpOkvXYw 
提取碼:o72z

把安裝壓縮包 harbor-online-installer-v1.6.2.tgz 上傳到服務(wù)器

1、解壓

[root@localhost harbor]# tar xvf harbor-online-installer-v1.6.2.tgz

2、配置

在harbor的解壓目錄里,有下列文件,其中 harbor.cfg是配置文件,install.sh是安裝文件

drwxr-xr-x. 3 root root      23 Dec  9 22:41 common
-rw-r--r--. 1 root root     813 Nov 20 13:59 docker-compose.chartmuseum.yml
-rw-r--r--. 1 root root     863 Nov 20 13:59 docker-compose.clair.yml
-rw-r--r--. 1 root root    1258 Nov 20 13:59 docker-compose.notary.yml
-rw-r--r--. 1 root root    3675 Nov 20 13:59 docker-compose.yml
drwxr-xr-x. 3 root root     136 Nov 20 13:59 ha
-rw-r--r--. 1 root root    7913 Nov 20 13:59 harbor.cfg
-rwxr-xr-x. 1 root root    6162 Nov 20 13:59 install.sh
-rw-r--r--. 1 root root   10768 Nov 20 13:59 LICENSE
-rw-r--r--. 1 root root     482 Nov 20 13:59 NOTICE
-rw-r--r--. 1 root root 1535603 Nov 20 13:59 open_source_license
-rwxr-xr-x. 1 root root   39132 Nov 20 13:59 prepare

下面修改一些示例中使用的參數(shù),更詳細(xì)的參數(shù)請(qǐng)參考:https://github.com/goharbor/harbor/blob/v1.6.2/docs/installation_guide.md

vim harbor.cfg

 修改配置,使用IP地址訪問(wèn)harbor,暴露的端口是5000

# 監(jiān)聽(tīng)地址,不能設(shè)置為127.0.0.1或者localhost,這里設(shè)置的是docker host的ip地址
hostname = 192.168.88.30:5000
# 登錄密碼,默認(rèn)密碼:Harbor12345
harbor_admin_password = 123456

修改docker-compose.yml,映射容器中的80端口到host的5000端口

proxy:
    image: goharbor/nginx-photon:v1.6.2
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    ports:
      #需要改這里
      - 5000:80
      - 443:443
      - 4443:4443

3. 安裝

運(yùn)行安裝目錄里面的 install.sh。耐心等待,如果是在線安裝版本,需要下載一些docker鏡像,如果已經(jīng)  docker - 鏡像加速器 配置了加速器,那是相當(dāng)快的。

./install.sh

下載的鏡像如下:

[root@localhost harbor]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
goharbor/redis-photon         v1.6.2              473bfdd9d245        2 weeks ago         210MB
goharbor/registry-photon      v2.6.2-v1.6.2       62c30cdb384a        2 weeks ago         196MB
goharbor/nginx-photon         v1.6.2              c0602500e829        2 weeks ago         132MB
goharbor/harbor-log           v1.6.2              781ee4ceb5d3        2 weeks ago         197MB
goharbor/harbor-jobservice    v1.6.2              3419a2276f96        2 weeks ago         192MB
goharbor/harbor-ui            v1.6.2              66268686bb96        2 weeks ago         215MB
goharbor/harbor-adminserver   v1.6.2              4024440925a4        2 weeks ago         181MB
goharbor/harbor-db            v1.6.2              0ed4186be0d1        2 weeks ago         219MB

啟動(dòng)的容器

[root@localhost harbor]# docker ps
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                                 PORTS                                                                NAMES
18c82d20d070        goharbor/harbor-jobservice:v1.6.2        "/harbor/start.sh"       2 minutes ago       Up About a minute                                                                                           harbor-jobservice
1a807ff9307d        goharbor/nginx-photon:v1.6.2             "nginx -g 'daemon of…"   2 minutes ago       Up About a minute (health: starting)   0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:5000->80/tcp   nginx
83428db239b3        goharbor/harbor-ui:v1.6.2                "/harbor/start.sh"       2 minutes ago       Up 23 seconds (health: starting)                                                                            harbor-ui
d785d1e0b4fb        goharbor/redis-photon:v1.6.2             "docker-entrypoint.s…"   2 minutes ago       Up 2 minutes                           6379/tcp                                                             redis
126657d6e33c        goharbor/harbor-adminserver:v1.6.2       "/harbor/start.sh"       2 minutes ago       Restarting (1) 3 seconds ago                                                                                harbor-adminserver
1ac23c837879        goharbor/registry-photon:v2.6.2-v1.6.2   "/entrypoint.sh /etc…"   2 minutes ago       Up 2 minutes (healthy)                 5000/tcp                                                             registry
d080851c8190        goharbor/harbor-db:v1.6.2                "/entrypoint.sh post…"   2 minutes ago       Up 2 minutes (healthy)                 5432/tcp                                                             harbor-db
b47254ceba04        goharbor/harbor-log:v1.6.2               "/bin/sh -c /usr/loc…"   2 minutes ago       Up 2 minutes (healthy)                 127.0.0.1:1514->10514/tcp                                            harbor-log

默認(rèn)情況下,docker是不給你直接用IP地址訪問(wèn)HARBOR的,但是在host里面使用curl命名是可以訪問(wèn)的

怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor

解決這個(gè)問(wèn)題的方法:

需要在docker的安全檢查那里添加白名單

#vim /usr/lib/systemd/system/docker.service  

#修改如下一行
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.88.30:5000

重新訪問(wèn)

怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor

用系統(tǒng)管理員賬戶登錄后,可以看到有一個(gè)默認(rèn)的public項(xiàng)目

怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor

4. 推送鏡像到harbor 

接下來(lái),我們把在 docker - dockerfile構(gòu)建一個(gè)簡(jiǎn)單的springboot應(yīng)用鏡像 文章中做的springboot-docker鏡像推送到harbor中。

首先,在harbor里創(chuàng)建一個(gè)test-project項(xiàng)目

怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor
如果訪問(wèn)級(jí)別設(shè)為公布,所有人都可以不需要登錄就可以拉取和推送鏡像。

命令行登錄harbor

docker login 192.168.88.30:5000

出現(xiàn)以下問(wèn)題

Error response from daemon: Get https://192.168.88.30:5000/v2/: http: server gave HTTP response to HTTPS client

需要在docker的安全檢查那里添加白名單

#vim /usr/lib/systemd/system/docker.service  

#修改如下一行
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.88.30:5000

重啟docker

systemctl daemon-reload
systemctl restart docker.service

重新登錄

[root@localhost harbor]# docker login 192.168.88.30:5000
Username: admin
Password: 
Login Succeeded

查看下我們現(xiàn)在的鏡像

[root@localhost springboot-docker]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED              SIZE
springboot-docker             1.0                 3be343b3b3ea        About a minute ago   121MB

倉(cāng)庫(kù)拉取或者推送的命名格式:

${IP或者域名}/${項(xiàng)目}/${模塊}:${tag}

原來(lái)的springboot-docker項(xiàng)目打標(biāo)簽,推送到harbor。

[root@localhost ~]# docker tag springboot-docker:1.0 192.168.88.30:5000/test-project/springboot-docker:1.0
[root@localhost ~]# docker images
REPOSITORY                                          TAG                 IMAGE ID            CREATED             SIZE
192.168.88.30:5000/test-project/springboot-docker   1.0                 3be343b3b3ea        10 hours ago        121MB
springboot-docker                                   1.0                 3be343b3b3ea        10 hours ago        121MB
[root@localhost ~]# docker push 192.168.88.30:5000/test-project/springboot-docker:1.0
The push refers to repository [192.168.88.30:5000/test-project/springboot-docker]
fff182a7c29a: Pushed 
f7b41bda6817: Pushed 
ed6f0bd39121: Pushed 
0c3170905795: Pushed 
df64d3292fd6: Pushed 
1.0: digest: sha256:f37dc7dbb294a3e1eb7f53d8ad7616068dccf7996233bc8b72578d96aabee1fa size: 1366

推送完畢后,通過(guò)頁(yè)面可以看到相應(yīng)的鏡像

怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor

拉取私庫(kù)中的鏡像:

docker pull 192.168.88.30:5000/test-project/springboot-docker:1.0

上述就是小編為大家分享的怎樣安裝企業(yè)級(jí)docker鏡像倉(cāng)庫(kù)Harbor了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI