部署docker倉庫-Harbor
Habor是由VMWare公司開源的容器映象倉庫。事實上,Habor是在Docker Registry上進行了相應的企業級擴充套件,從而獲得了更加廣泛的應用,這些新的企業級特性包括:管理使用者介面,基於角色的訪問控制 ,AD/LDAP整合以及審計日誌等,足以滿足基本企業需求。
官方地址:https://vmware.github.io
Github:https://github.com/goharbor/harbor
Harbor主要功能
Harbor元件
元件 |
功能 |
harbor-adminserver |
配置管理中心 |
harbor-db |
Mysql資料庫 |
harbor-jobservice |
負責映象複製 |
harbor-log |
記錄操作日誌 |
harbor-ui |
Web管理頁面和API |
nginx |
前端代理,前端頁面和映象上傳/下載轉發 |
redis |
會話 |
registry |
映象儲存 |
Harbor部署
環境要求:
Harbor是VMware公司開源的企業級docker registry專案
專案地址:https://github.com/vmware/barbor
1、下載離線安裝包 2、安裝docker 3、安裝docker-compose 4、自籤TLS證書:https://github.com/vmware/harbor/blob/master/docs/configure_https.md 5、Harbor安裝與配置 6、Docker主機訪問Harbor
https://github.com/goharbor/harbor/blob/master/docs/configure_https.md
https://goharbor.io/docs/1.10/install-config/download-installer/
Harbor安裝有3種方式:
線上安裝:從Docker Hub下載Harbor相關映象,因此安裝軟體包非常小 離線安裝:安裝包包含部署的相關映象,因此安裝包比較大 OVA安裝程式:當用戶具有vCenter環境時,使用此安裝程式,在部署OVA後啟動Harbor
採用離線安裝,首先下載離線安裝包:https://github.com/vmware/harbor/releases
HTTP方式部署
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version #修改倉庫地址 cat >/etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "192.168.10.122" ] } EOF 驗證是否成功 systemctl daemon-reload systemctl restart docker.service docker info
安裝docker-compose
方法一: 國內推薦方法 yum install -y epel-release yum install -y docker-compose 方法二: curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version 但是此方法會經常因為網路的原因而無法安裝 方法三: #1、安裝python-pip yum -y install epel-release yum -y install python-pip #2、安裝docker-compose pip install docker-compose docker-compose version
自籤HTTPS證書,可以不配置
mkdir /root/harbor/ssl/ cd /root/harbor/ssl/ openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout ca.key \ -x509 -days 365 -out ca.crt
生成域名證書
openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout reg.fage.com.key \ -out reg.fage.com.csr
空白處回車不用管,回車即可,注意域名出非常重要,密碼可以設定也可以不設定,
頒發證書
openssl x509 -req -days 365 -in reg.fage.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out reg.fage.com.crt
主要用到是:reg.fage.com.crt reg.fage.com.key 這個兩個檔案
開始部署
下載地址:
https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz
解壓檔案
tar xf harbor-offline-installer-v1.7.5.tgz cd harbor/
編輯配置檔案
vim /root/harbor/harbor.cfg 確保下面幾個地方沒問題,如果不是有80埠,可以加上埠號,不會與其他埠衝突,例如:192.168.10.122
#不加證書http hostname = 192.168.10.122 ui_url_protocol = http harbor_admin_password = Harbor12345 #下面的是加證的配置https hostname = reg.fage.com ui_url_protocol = http ssl_cert = ./ssl/reg.fage.com.crt ssl_cert_key = ./ssl/reg.fage.com.key harbor_admin_password = Harbor12345
準備配置檔案:
./prepare
開始安裝並啟動barbor
cd /root/harbor/ && ./install.sh
驗證
cd /root/harbor/ && docker-compose ps
需要狀態全部為UP才是成功的
瀏覽器輸入地址就可以訪問了
http://192.168.10.122
賬號:admin
密碼:Harbor12345
新增用
在專案中新增成員,或者管理員
上傳映象到harbor
接下來將剛才構建的映象推送到Harbor倉庫,先看看我們要推送的映象
docker images
在推送之前,需要注意第一列,這個完整格式是
regisry.stnrs.com/library/hello-word:latest
映象中心域名 專案名稱 名稱 版本
如果映象只放在本地儲存REPOSITORY寫什麼都可以,但推送到映象倉庫就必須指定倉庫中心地址。
所以,先打重新命名REPOSITORY,其實就是引用源映象標記了一個目標映象
上傳映象需要先登入,不登入會報錯
docker image tag nginx 192.168.10.122/library/nginx-1 docker login 192.168.10.122 docker push 192.168.10.122/library/nginx-1
登入網頁檢視映象
http://192.168.10.122/harbor/projects/1/repositories
加密的方式
在另外一臺主機上安裝docker後,把證書拷貝下來,放到需要使用的機器上,因為自簽證書不受信任,所以需要將證書檔案拿到客戶機去解密
首先安裝docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum -y install docker-ce-18.06.1.ce-3.el7 systemctl enable docker && systemctl start docker docker --version
建立存放證書的資料夾
mkdir -p /etc/docker/certs.d/reg.fage.com
域名解析
echo "192.168.10.112 reg.fagfe.com" >>/etc/hosts
拷貝harbor上證書到客戶端證書目錄下,客戶端操作
scp [email protected]:/root/harbor/ssl/reg.fage.com.crt /etc/docker/certs.d/reg.fage.com/
如果沒有加入證書就要修改這個檔案才能登入
cat >/etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://b9pmyelo.mirror.aliyuncs.com" ], "registry-mirrors": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "192.168.10.112" ] } EOF
重置系統環境
systemctl daemon-reload systemctl restart docker.service
登入成功後才能上傳映象
docker login reg.fage.com docker login 192.168.10.112 docker image tag nginx-v1 192.168.10.112/nginx-v1 docker push 192.168.10.112/nginx-v1 加密方式 docker login reg.fage.com docker login reg.fage.com docker image tag nginx-v1 reg.fage.com/nginx-v1 docker push reg.fage.com /nginx-v1