
Docker的應(yīng)用越來越廣泛,在公司內(nèi)部搭建一臺(tái)私服是剛需需求。Docker官方提供了Registry具備此功能,但管理方面較弱,不適合企業(yè)級(jí)的應(yīng)用,今天給大家介紹Harbor的使用。 Harbor是由VMware公司開源的企業(yè)級(jí)的Docker Registry管理項(xiàng)目,它包括權(quán)限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊(cè)、鏡像復(fù)制和中文支持等功能。 鑒于網(wǎng)上很多文件介紹較為片面,本篇文章作出如下總結(jié)和整理。 文章分為安裝、Harbor使用介紹、鏡像操作三部分,全面介紹Harbor的使用,整體來說,安裝簡(jiǎn)單、使用簡(jiǎn)單。
相關(guān)安裝
Docker安裝
# 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
# 啟動(dòng) Docker
[root@centos7 ~]# systemctl start docker
# 查看 Docker 版本號(hào)
[root@centos7 ~]# docker --version
復(fù)制代碼
Docker Compose 安裝
# 安裝 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 版本號(hào)
[root@centos7 ~] docker-compose -version
復(fù)制代碼
如果安裝python出現(xiàn)如下錯(cuò)誤:
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-WImLdR/pyparsing/
復(fù)制代碼
可嘗試執(zhí)行如下指令:
sudo python -m pip install --upgrade --force pip
sudo pip install setuptools==33.1.1
復(fù)制代碼
安裝harbor
下載
文件地址:下載地址-github
wget https://github.com/goharbor/harbor/releases/download/v1.9.3/harbor-offline-installer-v1.9.3.tgz
復(fù)制代碼
這里通過以上指令下載,默認(rèn)下載在當(dāng)前文件夾
配置
解壓,得到如下
tar -zxvf harbor-offline-installer-v1.9.3.tgz
復(fù)制代碼

配置harbor.yml

配置docker-compose.yml[圖片上傳中...(image-474798-1579590383132-7)]

運(yùn)行安裝指令
sudo ./install.sh
復(fù)制代碼
如果出現(xiàn)如下結(jié)果,恭喜你,成功安裝

至此,安裝步驟完成
harbor使用
訪問地址 //hostname:port (hostname 和 port 為上述配置)


以下是對(duì)關(guān)鍵功能介紹
項(xiàng)目
以項(xiàng)目的維度劃分鏡像,可以理解為鏡像組,相同鏡像的不同版本可以放在一個(gè)項(xiàng)目里,同樣項(xiàng)目里有完成的倉庫、成員、標(biāo)簽、日志的管理。 注意,此處的標(biāo)簽,不建議維護(hù),用全局的設(shè)置,最好最好統(tǒng)一,如何設(shè)置,稍后講到
日志
harbor將日志分為日志和事件日志,比較簡(jiǎn)單,就不贅述了


系統(tǒng)管理
用戶管理 用于操作用戶的增刪、密碼重置
倉庫管理 拉取其他服務(wù)器鏡像到本地
同步管理 可定時(shí)去拉取最新鏡像
任務(wù)
垃圾清理 定時(shí)清空無用鏡像
配置管理
此功能比較清晰,主要想介紹下標(biāo)簽,此處標(biāo)簽為全局,供所有鏡像使用

鏡像推送
首先面臨的是HTTP推送問題,
ERROR: Get https://192.168.1.111:81/v2/: http: server gave HTTP response to HTTPS client
復(fù)制代碼
docker默認(rèn)的是HTTPS,大部分場(chǎng)景Harbor在內(nèi)網(wǎng),沒有HTTPS,則需要設(shè)置去除,方法簡(jiǎn)單:

Linux操作
vi /etc/docker/daemon.json
# 內(nèi)容如下
{
"insecure-registries":["harbor.goodcol.com:81"]
}
# 加載和重啟服務(wù)
systemctl daemon-reload
systemctl restart docker
復(fù)制代碼
鏡像推送和拉取
#從私服拉取鏡像 docker pull 私服地址/倉庫項(xiàng)目名/鏡像名:標(biāo)簽
復(fù)制代碼
鏡像推送
#推送
docker login 服務(wù)器地址:port
#鏡像打標(biāo)簽 ,要重新打標(biāo)簽,標(biāo)簽?zāi)J(rèn)是官網(wǎng)地址
docker tag 鏡像名:標(biāo)簽 私服地址/倉庫項(xiàng)目名/鏡像名:標(biāo)簽
#推送指令
docker push 私服地址/倉庫項(xiàng)目名/鏡像名:標(biāo)簽