#用戶手冊 ##概述 該指導將引導你去使用Harbor的各個功能特性。你將學習到怎樣使用Harbor去完成如下任務:git
##基於角色的訪問控制 RBAC (Role Based Access Control)在Harbor中被支持,目前會支持四種具備不一樣權限的角色:github
只讀
權限。讀寫
權限項目管理員
的角色去管理整個項目。除過讀寫
特權以外,項目管理員也有其餘方面的管理特權,好比添加和移除項目成員。系統管理員
有着最大的權限,也就是系統默認的admin用戶。 除了上述提到權限以外,系統管理員
也有全部的項目權限,而且能夠將一個普通用戶提高成管理員,同時也能夠刪除用戶。系統默認的公開項目library
也屬於系統管理員。只讀
權限。##用戶帳戶 做爲一個用戶,能夠經過自注冊程序去註冊一個帳戶。用戶名和郵箱地址必須在Harbor中惟一。密碼必須包含至少7個字符,其中必須包含一個大寫一個小寫以及一個數字字符。web
若是管理員已經配置了LDAP/AD做爲用戶認證源,註冊一步能夠能夠忽略的。LDAP/AD的用戶id能夠被用來直接登陸Harbor。redis
若是你忘記了本身的密碼,能夠經過如下步驟進行重置密碼:docker
忘記密碼
##管理項目 在Harbor中的一個項目包含一個應用的全部倉庫.RBAC(基於角色的權限控制)被應用在一個項目中。在Harbor中分爲兩種項目公開
和私有
:ubuntu
在你登陸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.