一、harbor簡介:
簡單的說,Harbor 是一個企業級的 Docker Registry,可以實現 p_w_picpaths 的私有存儲和日志統計權限控制等功能,并支持創建多項目(Harbor 提出的概念),基于官方 Registry V2 實現的。
二、部署方法:
操作系統:Ubuntu14.04
1、安裝docker:
#安裝插件 sudo apt-get install apt-transport-https ca-certificates #添加GPG key sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo vim /etc/apt/sources.list.d/docker.list #添加以下內容,保存退出 deb https://apt.dockerproject.org/repo ubuntu-trusty main #跟新、清除老的repo sudo apt-get update sudo apt-get purge lxc-docker #安裝docker-engine sudo apt-get install docker-engine
2.安裝docker-com:
sudo curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /home/cimer/docker-compose sudo mv docker-compose /usr/local/bin/ sudo chmod +x /usr/local/bin/docker-compose
3.安裝Harbor:
3.1、克隆源碼:
git clone https://github.com/vmware/harbor
3.2、修改配置:
cd harbor/Deploy/ vim harbor.cfg
如下:
## Configuration file of Harbor #The IP address or hostname to access admin UI and registry service. #DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients. # 指定 hostname,一般為IP,或者域名,用于登錄 Web UI 界面 hostname = 172.16.4.253 #The protocol for accessing the UI and token/notification service, by default it is http. #It can be set to https if ssl is enabled on nginx. # URL 訪問方式,SSL 需要配置 nginx ui_url_protocol = http #Email account settings for sending out password resetting emails. # 郵件相關信息配置,如忘記密碼發送郵件 email_server = smtp.xxxxxx.com email_server_port = 465 email_username = reg@mritd.me email_password = xxxxxx email_from = docker <reg@mritd.me> email_ssl = true ##The password of Harbor admin, change this before any production use. # 默認的 Harbor 的管理員密碼,管理員用戶名默認 admin harbor_admin_password = Harbor12345 ##By default the auth mode is db_auth, i.e. the credentials are stored in a local database. #Set it to ldap_auth if you want to verify a user's credentials against an LDAP server. # 指定 Harbor 的權限驗證方式,Harbor 支持本地的 mysql 數據存儲密碼,同時也支持 LDAP auth_mode = db_auth #The url for an ldap endpoint. # 如果采用了 LDAP,此處填寫 LDAP 地址 ldap_url = ldaps://ldap.mydomain.com #The basedn template to look up a user in LDAP and verify the user's password. # LADP 驗證密碼的方式 ldap_basedn = uid=%s,ou=people,dc=mydomain,dc=com #The password for the root user of mysql db, change this before any production use. # mysql 數據庫 root 賬戶密碼 db_password = root123 #Turn on or off the self-registration feature # 是否允許開放注冊 self_registration = on #Turn on or off the customize your certicate # 允許自簽名證書 customize_crt = on #fill in your certicate message # 自簽名證書信息 crt_country = CN crt_state = State crt_location = CN crt_organization = mritd crt_organizationalunit = mritd crt_commonname = mritd.me crt_email = reg.mritd.me #####
3.3、生成相關配置文件:
cd harbor/Deploy/ ./prepare

3.4、編譯p_w_picpath并啟動:
cd harbor/Deploy/ docker-compose up -d

3.5、檢查啟動后的相關容器:
Proxy : 由Nginx 服務器構成的反向代理
Registry : 由Docker官方的開源registry 鏡像構成的容器實例
UI : 即架構中的core services, 構成此容器的代碼是Harbor項目的主體
Mysql : 由官方MySql鏡像構成的數據庫容器
Log : 運行著rsyslogd的容器,通過log-driver的形式收集其他容器的日志

4、訪問Web Ui:
訪問:http://172.16.4.253,賬戶密碼為harbor.cfg中配置的
如果harbor.cfg中的self_registration設置為off,那么普通用戶無法實現注冊,只能由管理員創建用戶;右上角的注冊按鈕也會消失。
4.2、登錄:
默認賬戶密碼:admin:Harbor12345

4.3、創建私有項目:
harbor的項目類似于Docker Hub的用戶名,其下可以存很多鏡像

4.4、push鏡像:

在web ui中查看

著:要是不適用驗證功能的話,修改registry的配置文件,把auth部分注釋掉,重新啟動即可
sudo vim harbor/Deploy/config/registry/config.yml sudo docker-compose stop sudo docker-compose up -d

三、配置docker鏡像的復制:
復制功能是p_w_picpath在兩個或多個harbor節點之間的復制。原理圖如下:


1.先配置2個harbor實例,分別為172.16.4.253和172.16.4.252
2.在172.16.4.253上上傳一個鏡像,該實例作為主節點
3.進入web ui的項目選項,選擇復制:

4.點擊新增策略,并設置策略:

創建完畢后,我們可以看到復制策略中多一個策略,復制任務里面也多一個任務,稍等一會就可以復制完成。登錄172.16.4.252的web ui,會發現鏡像和日志都復制過來了。
四、升級harbor:
1.刪除原有容器
cd harbor/Deploy/ sudo docker-compose down
2.備份
mv harbor/ /tm/harbor
3.重新下載源碼
git clone https://github.com/vmware/harbor
4.如果harbor 是遷移到其他服務器,請先執行數據備份
cd harbor/migration/
修改 migration.cfg 文件里面的 數據庫 帳號密碼后
sudo docker build -t migrate-tool .
5.運行一個臨時數據庫容器,(注意:/data/database 為你設置的掛載數據庫的目錄 /path/to/backup 數據備份的目錄)本分數據
sudo docker run -ti --rm -v /data/database:/var/lib/mysql -v /path/to/backup:/harbor-migration/backup migrate-tool backup
6.數據庫還原
sudo docker run -ti --rm -v /data/database:/var/lib/mysql migrate-tool up head
7.對比一下配置文件
如果修改了端口 必須更新 cd harbor/Deploy/config/nginx/nginx.conf 里面的端口
diff harbor.cfg /tmp/harbor/Deploy/harbor.cfg diff docker-compose.yaml /tmp/harbor/Deploy/docker-compose.yaml
8.執行 ./prepare 生成新的配置文件
cd /harbor/Deploy/ ./prepare
9.build 新的鏡像,啟動容器
cd /harbor/Deploy/ docker-compose up --build -d
完成后,登錄web ui,檢查是否升級成功。
參考:
https://my.oschina.net/u/1540325/blog/702260
http://www.cnblogs.com/jicki/p/5737369.html
http://blog.csdn.net/project_harbor/article/details/51261934
http://www.tuicool.com/articles/m2uyQri
http://www.2cto.com/net/201607/531849.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。