Docker的應用愈來愈普遍,在公司內部搭建一臺私服是剛需需求。Docker官方提供了Registry具有此功能,但管理方面較弱,不適合企業級的應用,今天給你們介紹Harbor的使用。 Harbor是由VMware公司開源的企業級的Docker Registry管理項目,它包括權限管理(RBAC)、LDAP、日誌審覈、管理界面、自我註冊、鏡像複製和中文支持等功能。 鑑於網上不少文件介紹較爲片面,本篇文章做出以下總結和整理。 文章分爲安裝、Harbor使用介紹、鏡像操做三部分,全面介紹Harbor的使用,總體來講,安裝簡單、使用簡單。python
# yum 包更新 [root@centos7 ~]# yum update # 卸載舊版本 Docker [root@centos7 ~]# yum remove docker docker-common docker-selinux docker-engine # 安裝軟件包 [root@centos7 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加 Docker yum源 [root@centos7 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安裝 Docker [root@centos7 ~]# yum -y install docker-ce # 啓動 Docker [root@centos7 ~]# systemctl start docker # 查看 Docker 版本號 [root@centos7 ~]# docker --version 複製代碼
# 安裝 epel-release [root@centos7 ~]# yum install epel-release # 安裝 python-pip [root@centos7 ~]# yum install -y python-pip # 安裝 docker-compose [root@centos7 ~]# pip install docker-compose # 安裝 git [root@centos7 ~]# yum install -y git # 查看 docker-compose 版本號 [root@centos7 ~] docker-compose -version 複製代碼
若是安裝python出現以下錯誤:linux
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-WImLdR/pyparsing/ 複製代碼
可嘗試執行以下指令:git
sudo python -m pip install --upgrade --force pip sudo pip install setuptools==33.1.1 複製代碼
文件地址:下載地址-githubgithub
wget https://github.com/goharbor/harbor/releases/download/v1.9.3/harbor-offline-installer-v1.9.3.tgz 複製代碼
這裏經過以上指令下載,默認下載在當前文件夾docker
解壓,獲得以下json
tar -zxvf harbor-offline-installer-v1.9.3.tgz 複製代碼
配置harbor.ymlcentos
配置docker-compose.yml服務器
sudo ./install.sh 複製代碼
若是出現以下結果,恭喜你,成功安裝app
至此,安裝步驟完成ui
訪問地址 //hostname:port (hostname 和 port 爲上述配置)
如下是對關鍵功能介紹
以項目的維度劃分鏡像,能夠理解爲鏡像組,相同鏡像的不一樣版本能夠放在一個項目裏,一樣項目裏有完成的倉庫、成員、標籤、日誌的管理。 注意,此處的標籤,不建議維護,用全局的設置,最好最好統一,如何設置,稍後講到
harbor將日誌分爲日誌和事件日誌,比較簡單,就不贅述了
用戶管理 用於操做用戶的增刪、密碼重置
倉庫管理 拉取其餘服務器鏡像到本地
同步管理 可定時去拉取最新鏡像
垃圾清理 定時清空無用鏡像
此功能比較清晰,主要想介紹下標籤,此處標籤爲全局,供全部鏡像使用
首先面臨的是HTTP推送問題,
ERROR: Get https://192.168.1.111:81/v2/: http: server gave HTTP response to HTTPS client 複製代碼
docker默認的是HTTPS,大部分場景Harbor在內網,沒有HTTPS,則須要設置去除,方法簡單:
Linux操做
vi /etc/docker/daemon.json # 內容以下 { "insecure-registries":["harbor.goodcol.com:81"] } # 加載和重啓服務 systemctl daemon-reload systemctl restart docker 複製代碼
鏡像推送和拉取
#從私服拉取鏡像 docker pull 私服地址/倉庫項目名/鏡像名:標籤 複製代碼
鏡像推送
#推送 docker login 服務器地址:port #鏡像打標籤 ,要從新打標籤,標籤默認是官網地址 docker tag 鏡像名:標籤 私服地址/倉庫項目名/鏡像名:標籤 #推送指令 docker push 私服地址/倉庫項目名/鏡像名:標籤