Docker之私有鏡像倉(cāng)庫(kù)Harbor搭建

Docker離不開(kāi)可靠的鏡像管理,官方默認(rèn)的DockHub,雖然Docker官方也提供了公共的鏡像倉(cāng)庫(kù)Registry,但是功能略顯簡(jiǎn)單。

Harbor是由VMware公司開(kāi)源的企業(yè)級(jí)的Docker Registry管理項(xiàng)目,它包括權(quán)限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊(cè)、鏡像復(fù)制和中文支持等功能。官網(wǎng)在此

1. 系統(tǒng)環(huán)境(harbor需要docker-compose):

#docker version
docker version 19.03.1
#docker-compose version
docker-compose version 1.18.0

#harbor版本:
v1.9.4

2. 下載安裝包:

官方安裝文檔地址:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

harbor安裝分為離線和在線安裝,本次使用的是離線安裝

安裝包下載地址: https://github.com/goharbor/harbor/releases

wget https://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz

tar zxvf harbor-offline-installer-v1.9.4.tgz
cd harbor/

3. 修改配置文件harbor.yml:

cat harbor.yml  | grep -v '#\|^$'
#####
hostname: 10.1.129.123  #需要修改為對(duì)外訪問(wèn)的地址
http:
  port: 81                          #需要修改為對(duì)外訪問(wèn)的端口
harbor_admin_password: Harbor12345
database:
  password: root123
  max_idle_conns: 50
  max_open_conns: 100
data_volume: /data/harbor_registry  #可以修改為指定的目錄
clair:
  updaters_interval: 12
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 1.9.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - clair

4. 執(zhí)行安裝:

./install.sh --with-clair  #加--with-clair可以檢查鏡像的安全漏洞

安裝完后執(zhí)行docker-compose ps查看啟動(dòng)的容器:

[root@node03 harbor]#docker-compose ps

      Name                     Command               State             Ports          
--------------------------------------------------------------------------------------
clair               /docker-entrypoint.sh            Up      6060/tcp, 6061/tcp       
harbor-core         /harbor/harbor_core              Up                               
harbor-db           /docker-entrypoint.sh            Up      5432/tcp                 
harbor-jobservice   /harbor/harbor_jobservice  ...   Up                               
harbor-log          /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
harbor-portal       nginx -g daemon off;             Up      8080/tcp                 
nginx               nginx -g daemon off;             Up      0.0.0.0:81->8080/tcp     
redis               redis-server /etc/redis.conf     Up      6379/tcp                 
registry            /entrypoint.sh /etc/regist ...   Up      5000/tcp                 
registryctl         /harbor/start.sh                 Up           

Harbor啟動(dòng)停止方法(必須在解壓后的安裝目錄運(yùn)行):

docker-compose stop
docker-compose start
docker-compose restart

5. 頁(yè)面配置:

訪問(wèn)之前在harbor.yml中配置的hostname+port(用戶名密碼為harbor.yml中配置的,默認(rèn)為admin/Harbor12345)



在此新建一個(gè)倉(cāng)庫(kù)base_image測(cè)試用:


6. 配置docker信任倉(cāng)庫(kù):
因?yàn)閐ocker默認(rèn)使用https連接鏡像倉(cāng)庫(kù),而此處harbor配置使用的是http,所以需要配置docker節(jié)點(diǎn)文件信任此倉(cāng)庫(kù)(所有需要使用倉(cāng)庫(kù)的主機(jī)都需要操作一步這個(gè))

vim /etc/docker/daemon.json
######
{
    "insecure-registries": ["10.1.129.123:81"]
}

第一次push之前需要使用docker login 登陸驗(yàn)證下(所有需要使用倉(cāng)庫(kù)的主機(jī)都需要操作一步這個(gè)):

docker login 10.1.129.123:81
######
Username: admin
Password: 

Login Succeeded

相關(guān)用戶名密碼等會(huì)存儲(chǔ)在/root/.docker/config.json文件里

6. 測(cè)試推送鏡像到harbor:

docker image ls #找個(gè)鏡像
docker image tag python:3.5.6 10.1.129.123:81/base_image/python:3.5.6   #改tag
docker push 10.1.129.123:81/base_image/python:3.5.6 #push鏡像到harbor

7. 測(cè)試?yán)arbor鏡像:

docker image rm 10.1.129.123:81/base_image/python:3.5.6 #首先刪除之前的鏡像
docker pull 10.1.129.123:81/base_image/python:3.5.6         #測(cè)試再次拉取

至此,Harbor私有鏡像倉(cāng)庫(kù)搭建完成,盡情體驗(yàn)吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容