Harbor簡述前端
Habor是由VMWare公司開源的容器鏡像倉庫。事實上,Habor是在Docker Registry上進行了相應的企業級擴展,從而得到了更加普遍的應用,這些新的企業級特性包括:管理用戶界面,基於角色的訪問控制 ,AD/LDAP集成以及審計日誌等,足以知足基本企業需求。node
官方地址:https://vmware.github.io/harbor/cn/mysql
Harbor三種角色:nginx
Guest:對指定項目只讀權限 Developer:開發人員,讀寫項目的權限 Admin:項目管理,全部權限 Anonymous:當用戶未登陸時,該用戶視爲匿名用戶,匿名用戶不能訪問私有項目,只能訪問公開項目git
Harbor http部署github
組件 功能redis
harbor-adminserver 配置管理中心sql
harbor-db Mysql數據庫docker
harbor-jobservice 負責鏡像複製數據庫
harbor-log 記錄操做日誌
harbor-ui Web管理頁面和API
nginx 前端代理,負責前端頁面和鏡像上傳/下載轉發
redis 會話
registry 鏡像存儲
一 Harbor安裝
• 在線安裝:從Docker Hub下載Harbor相關鏡像,所以安裝軟件包很是小
• 離線安裝:安裝包包含部署的相關鏡像,所以安裝包比較大
• OVA安裝程序:當用戶具備vCenter環境時,使用此安裝程序,在部署OVA後啓動Harbor
```
二 docker-compose 安裝
1 sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2 chmod +x /usr/local/bin/docker-compose 3 docker-compose --version
三 Harbor離線安裝
離線安裝下載離線包 https://github.com/vmware/harbor/releases
1 tar zxvf harbor-offline-installer-v1.7.5.tgz
2 cd harbor 3 vi harbor.cfg 4 hostname = 主機IP或起個域名(我使用了ip地址192.168.73.136) 5 ui_url_protocol = http 6 harbor_admin_password = 123456 7 ./prepare 8 ./install.sh
四 基本使用
其餘docker主機需配置http鏡像倉庫可信任,才能夠進行推送鏡像和拉取鏡像
vim /etc/docker/daemon.json
{"insecure-registries":["IP或者域名"]}
重啓docker
systemctl restart docker
登錄
docker login -u admin -p 12345 www.adong.com打標籤
docker tag mysql:5.7 www.adong.com/test/mysql:5.7
上傳鏡像
REPOSITORY字段含義 docker images
第一列:鏡像中心倉庫
第二列:鏡像標記,一個倉庫能夠有多個標記,不指定默認latest
第三列:鏡像ID
第四列:建立時間
第五列:鏡像大小
docker push www.adong.com/test/mysql:5.7
鏡像中心IP/域名 項目 名稱 版本
push 需先登錄
docker login ip
下載
docker pull www.adong.com/test/mysql:5.7
查看狀態以及日誌
日誌存放路徑 ls /var/log/harbor/
docker-compose ps 查看狀態
Harbor HTTPS 部署
一 安裝docker-compose1.23
1 sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2 chmod +x /usr/local/bin/docker-compose 3 docker-compose version
三 Harbor離線安裝
離線安裝下載離線包 https://github.com/vmware/harbor/releases
1 tar zxvf harbor-offline-installer-v1.7.5.tgz
2 cd harbor
三 配置自簽證書
若是沒有權威機構頒發的證書,如下是自簽證書的建立
1 mkdir ssl -p
2 cd ssl 3 #1. Create your own CA certificate: 4 openssl req -newkey rsa:4096 -nodes -sha512 -subj "/C=CN/ST=/L=/O=/OU=/CN=www.adong.com" -keyout ca.key -x509 -days 3650 -out ca.crt 5 #2.Generate a Certificate Signing Request: 6 #If you use FQDN like yourdomain.com to connect your registry host, then you must use yourdomain.com as CN (Common Name). 7 openssl req -newkey rsa:4096 -nodes -sha512 -subj "/C=CN/ST=/L=/O=e/OU=/CN=www.adong.com" -keyout www.adong.com.key -out www.adong.com.csr 8 #3.Generate the certificate of your registry host: 9 openssl x509 -req -days 3650 -in www.adong.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out www.adong.com.crt
四 配置文件設置
剛纔第二步解壓縮以後,harbor目錄下會生成harbor.conf文件,該文件就是Harbor的配置文件,編輯配置文件
1 vim harbor.cfg
2 #hostname設置訪問地址,可使用ip、域名,不能夠設置爲127.0.0.1或localhost 3 hostname =www.adong.com 4 # 訪問協議,默認是http,也能夠設置https,若是設置https,則nginx ssl須要設置on 5 ui_url_protocol = https 6 ssl_cert = ./ssl/www.adong.com.crt 7 ssl_cert_key =./ssl/www.adong.com.key 8 #啓動Harbor後,管理員UI登陸的密碼,默認是Harbor12345 9 harbor_admin_password = 12345
五 安裝Harbor
啓動 Harbor修改完配置文件後,在的當前目錄執行./install.sh,Harbor服務就會根據當期目錄下的docker-compose.yml開始下載依賴的鏡像,檢測並按照順序依次啓動
1 ./prepare
2 ./install.sh
查看容器是否都啓動成功
[root@localhost harbor]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------------------------------------ harbor-adminserver /harbor/start.sh Up (healthy) harbor-core /harbor/start.sh Up (healthy) harbor-db /entrypoint.sh postgres Up (healthy) 5432/tcp harbor-jobservice /harbor/start.sh Up harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp harbor-portal nginx -g daemon off; Up (healthy) 80/tcp nginx nginx -g daemon off; Up (healthy) 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:80->80/tcp redis docker-entrypoint.sh redis ... Up 6379/tcp registry /entrypoint.sh /etc/regist ... Up (healthy) 5000/tcp registryctl /harbor/start.sh Up (healthy)
六 訪問主機配置域名
啓動完成後,可使用域名訪問 https://www.adong.com,默認是80 443端口,若是端口占用,能夠去修改docker-compose.yml文件中,對應服務的端口映射
windows系統,hosts文件地址:C:\Windows\System32\drivers\etc,Mac系統sudo vi /private/etc/hosts 編輯hosts文件,在底部加入域名和ip,用於解析
192.168.73.136 www.adong.com
七 登陸 Web Harbor---https://www.adong.com
當前是自籤的證書,不是權威機構頒發,顯示不安全的連接,不影響加密
輸入用戶名admin,默認密碼(或已修改密碼)登陸系統。
項目:新增/刪除項目,查看鏡像倉庫,給項目添加成員、查看操做日誌、複製項目等
日誌:倉庫各個鏡像create、push、pull等操做日誌
系統管理
用戶管理:新增/刪除用戶、設置管理員等
複製管理:新增/刪除從庫目標、新建/刪除/啓停複製規則等
配置管理:認證模式、複製、郵箱設置、系統設置等
其餘設置
用戶設置:修改用戶名、郵箱、名稱信息
修改密碼:修改用戶密碼
注意:非系統管理員用戶登陸,只能看到有權限的項目和日誌,其餘模塊不可見。
用戶管理--新建用戶--- adong Test@123
項目--新建項目--新建一個名稱爲test的項目,設置不公開。注意:當項目設爲公開後,任何人都有此項目下鏡像的讀權限。命令行用戶不須要「docker login」就能夠拉取此項目下的鏡像。進入新建項目 test --添加成員 test.完畢後,能夠用test帳戶提交本地鏡像到Harbor倉庫了。
八 其餘docker主機配置
若是是使用的權威機構頒發的證書,其餘docker主機登陸就不用配置如下,由於我是自簽證書,所以須要配置
一、因是隻簽發證書,其餘Linux主機沒有簽發的證書,須要手工添加:
1 mkdir /etc/docker/certs.d/www.adong.com -p
2 scp root@192.168.73.136:/root/harbor/ssl/www.adong.com.crt /etc/docker/certs.d/www.adong.com
二、運行命令,更新信任ca
1 update-ca-trust
九 基本使用
登錄harbor
1 docker login -u admin -p 12345 www.adong.com
給鏡像打tag
docker tag mysql:5.7 www.adong.com/test/mysql:5.7
上傳鏡像
REPOSITORY字段含義 docker images
第一列:鏡像中心倉庫
第二列:鏡像標記,一個倉庫能夠有多個標記,不指定默認latest
第三列:鏡像ID
第四列:建立時間
第五列:鏡像大小
docker push www.adong.com/test/mysql:5.7
鏡像中心IP/域名 項目 名稱 版本
下載鏡像docker pull www.adong.com/test/mysql:5.7查看狀態以及日誌日誌存放路徑 ls /var/log/harbor/docker-compose ps 查看狀態