企業級Docker Registry開源工具Harbor的用戶使用指南

#用戶手冊 ##概述 該指導將引導你去使用Harbor的各個功能特性。你將學習到怎樣使用Harbor去完成如下任務:git

  • 管理你的項目
  • 管理一個項目中的成員
  • 同步一個項目中的registry到遠端的registry
  • 檢索項目和鏡像源
  • 若是你是系統管理員,能夠學習如何管理你的Harbor系統:
    • 管理用戶
    • 管理目標鏡像
    • 管理同步策略(多個registry之間的鏡像同步)
  • 使用docker客戶端程序上傳下載鏡像文件(docker pull/push images)
  • 刪除倉庫和鏡像文件

##基於角色的訪問控制 RBAC (Role Based Access Control)在Harbor中被支持,目前會支持四種具備不一樣權限的角色:github

  • 遊客: 遊客角色只對一個指定的項目有只讀權限。
  • 開發者: 開發者對一個項目具備讀寫權限
  • 項目管理員: 當建立一個新項目的時候,該用戶將被自動分配爲項目管理員的角色去管理整個項目。除過讀寫特權以外,項目管理員也有其餘方面的管理特權,好比添加和移除項目成員。
  • 系統管理員: 系統管理員有着最大的權限,也就是系統默認的admin用戶。 除了上述提到權限以外,系統管理員也有全部的項目權限,而且能夠將一個普通用戶提高成管理員,同時也能夠刪除用戶。系統默認的公開項目library也屬於系統管理員。
  • 匿名用戶: 當一個用戶沒有登陸的時候,該用戶就被認爲匿名用戶。任何一個匿名用戶都沒法訪問私有的項目,而且對全部的公開項目有只讀權限。

##用戶帳戶 做爲一個用戶,能夠經過自注冊程序去註冊一個帳戶。用戶名和郵箱地址必須在Harbor中惟一。密碼必須包含至少7個字符,其中必須包含一個大寫一個小寫以及一個數字字符。web

若是管理員已經配置了LDAP/AD做爲用戶認證源,註冊一步能夠能夠忽略的。LDAP/AD的用戶id能夠被用來直接登陸Harbor。redis

若是你忘記了本身的密碼,能夠經過如下步驟進行重置密碼:docker

  1. 在登陸頁面點擊忘記密碼
  2. 輸入註冊時候填寫的郵件地址,郵箱將會收到一封修改密碼的郵件
  3. 接受到郵件後,點擊郵件裏面的連接將跳轉到密碼重置頁面
  4. 輸入新密碼後點擊提交便可

##管理項目 在Harbor中的一個項目包含一個應用的全部倉庫.RBAC(基於角色的權限控制)被應用在一個項目中。在Harbor中分爲兩種項目公開私有ubuntu

  • Public: 全部用戶對於公開項目都有讀權限,這種方式對於你想把一些倉庫分享給其餘人的時候,是很是方便的.
  • Private: 私有項目只能被有特定用戶權限的人去訪問。這種方式對於內部團隊來講共享也是比較方便的。

在你登陸Harbor以後就能夠建立項目。點擊"Public"複選框將使該項目變成公開項目。dom

輸入圖片說明

項目被建立以後,用戶就能夠瀏覽倉庫,用戶以及使用導航標籤的一些日誌。學習

輸入圖片說明

全部的操做日誌將被經過點擊日誌列出來,你能夠經過高級搜索中用戶名,操做以及日期去搜索相關操做日誌:測試

輸入圖片說明

##管理項目成員 ###添加成員 你可使用不一樣的角色去添加成員到已經存在的項目。this

輸入圖片說明

###更新和移除項目成員 你能夠經過點擊編輯和刪除按鈕來更新和移除成員。

輸入圖片說明

##鏡像複製 若是你是系統管理員,你能夠將倉庫中的鏡像文件同步到遠端的registry(也就是你的目標Harbor) , 目前只有Harbor實例才支持做爲一個目標倉庫。所以,要使用鏡像複製功能,必須將Harbor在遠端從新部署一份

注意: 該鏡像複製功能在Harbor 0.3.5以前和和0.3.5版本以後是不兼容的。

在項目主頁點擊複製,並點擊新增策略來進行添加鏡像複製策略。目標URL即爲遠端的鏡像中心

輸入圖片說明

測試鏈接成功以後就能夠點擊肯定進行鏡像複製:

輸入圖片說明

能夠看到該複製任務正在進行,而且顯示當前複製的相關信息。底部會顯示該項目的整個複製進度,以及每一個倉庫複製的信息。

點擊右邊的日誌能夠查看每一個倉庫鏡像同步的信息詳情。

輸入圖片說明

複製完成以後就能夠在遠端Harbor中看到已經同步過去的項目以及鏡像文件。

輸入圖片說明

##檢索項目和鏡像倉庫 在頂部搜索框中輸入一個關鍵字並查詢會列出全部匹配的項目和鏡像倉庫信息。搜索結果包含全部你有權限訪問的私有和公開鏡像。

輸入圖片說明

##管理員選項 ###管理用戶 管理員能夠添加管理員角色給普通用戶,以提高權限,固然也能夠刪除某個用戶。

輸入圖片說明

###管理目標(遠端Harbor) 用戶能夠在管理員選項下目標按鈕下列出,添加和刪除複製策略,以及修改目標Harbor。只有那些不被任何策略引用的目的Harbor才能被修改編輯。

輸入圖片說明

###管理複製 用戶能夠在管理員選項下複製按鈕下列出,編輯和啓用或者禁止策略。再編輯策略以前須要確認策略已經被禁掉。

輸入圖片說明

##使用Docker 客戶端命令進行pull和push鏡像(下載和上傳鏡像)

注意: Harbor只支持Registry V2的API,所以你的docker客戶端版本必須在1.6.0以上才行。

Harbor默認支持的是HTTP,可是Docker客戶端默認會使用HTTPS去鏈接鏡像倉庫,所以當你pull或push鏡像的時候出現如下錯誤提示:

FATA[0002] Error: Invalid registry endpoint https://localhost.com:5000/v1/: Get https://localhost.com:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry localhost.com:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/localhost.com:5000/ca.crt

你只須要在Docker daemon的啓動配置中加入如下參數就可使用了。 --insecure-registry ip:port(regirsty的地址) 在Ubuntu系列中默認配置文件在/etc/default/docker。 在Centos系列中默認配置文件在/etc/sysconfig/docker 配置示例: 輸入圖片說明

在HTTPS狀況下,你須要可以訪問registry的CA證書就行,不須要配置額外的參數,通常的證書地址會放在如下位置。 /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt

###下載鏡像文件(docker pull images) 若是項目中的鏡像文件是私有的,那麼首先先登陸再去下載:

$ docker login 172.25.47.67
$ docker pull 172.25.47.67/pandora/pandora-redis:latest

注意: 用戶在操做的時候,只須要替換上面的ip地址爲harbor.cfg中配置的hostname(域名或者ip).

###上傳鏡像(docker push images) 在上傳鏡像以前,必須先在Harbor的web界面上建立一個對應的項目,由於鏡像上傳上去是存儲在對應項目中的。

首先,先使用docker client 登陸: 用戶名密碼爲Harbor上面設置的用戶/密碼,而且相應的權限和項目是一一對應的,你的用戶也只能上傳屬於你本身項目的鏡像。

$ docker login 172.25.47.67

給鏡像打tag:

$ docker tag ubuntu:14.04 172.25.47.67/pandora/ubuntu:14.04

上傳鏡像:

$ docker push 172.25.47.67/pandora/ubuntu:14.04

注意: 用戶在操做的時候,只須要替換上面的ip地址爲harbor.cfg中配置的hostname(域名或者ip).

##刪除鏡像倉庫

鏡像倉庫的刪除須要執行兩步操做:

首先,在Harbor的web界面上刪除一個鏡像倉庫,這是一個軟刪除,Harbor將不會再管理這個倉庫,可是倉庫中的鏡像都仍是會在registry中存放(Harbor的存儲中)。

注意: 若是tagA和tagB都指向相同的image,在刪除tagA以後,tagB也會被刪除。

接下來,使用registry的垃圾回收機制( garbage collection(GC))去刪除文件.在操做GC以前須要肯定沒有人正在上傳鏡像或者Harbor沒有運行。若是當GC正在運行中的時候有人正在push鏡像,那麼會有一些鏡像層(images layers)錯誤刪除的風險。所以,在運行GC以前,比較推薦的作法是先停掉Harbor。

在部署Harbor的主機上運行如下命令,能夠預覽到收到影響的文件或者鏡像。

$ docker-compose stop
$ docker run -it --name gc --rm --volumes-from deploy_registry_1 registry:2.5.0 garbage-collect --dry-run /etc/registry/config.yml

注意: 上面的參數"--dry-run" 將會打印刪除的進度 驗證完刪除的測試以後,可使用下面的命令進行GC回收,而且重啓Harbor。

$ docker run -it --name gc --rm --volumes-from deploy_registry_1 registry:2.5.0 garbage-collect  /etc/registry/config.yml
$ docker-compose start

有關更多GC的詳細信息, 請看鏈接 GC.

相關文章
相關標籤/搜索