企業級Docker容器鏡像倉庫Harbor的搭建


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 查看狀態

相關文章
相關標籤/搜索