Docker的应用越来越广泛,在公司内部搭建一台私服是刚需需求。Docker官方提供了Registry具备此功能,但管理方面较弱,不适合企业级的应用,今天给大家介绍Harbor的使用。 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。 鉴于网上很多文件介绍较为片面,本篇文章作出如下总结和整理。 文章分为安装、Harbor使用介绍、镜像操作三部分,全面介绍Harbor的使用,整体来说,安装简单、使用简单。
相关安装
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
# 启动 Docker
[root@centos7 ~]# systemctl start docker
# 查看 Docker 版本号
[root@centos7 ~]# docker --version
复制代码
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 版本号
[root@centos7 ~] docker-compose -version
复制代码
如果安装python出现如下错误:
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-WImLdR/pyparsing/
复制代码
可尝试执行如下指令:
sudo python -m pip install --upgrade --force pip
sudo pip install setuptools==33.1.1
复制代码
安装harbor
下载
文件地址:下载地址-github
wget https://github.com/goharbor/harbor/releases/download/v1.9.3/harbor-offline-installer-v1.9.3.tgz
复制代码
这里通过以上指令下载,默认下载在当前文件夹
配置
解压,得到如下
tar -zxvf harbor-offline-installer-v1.9.3.tgz
复制代码
Image.png
配置harbor.yml Image [1].png
配置docker-compose.yml[图片上传中...(image-474798-1579590383132-7)]
Image [2].png
运行安装指令
sudo ./install.sh
复制代码
如果出现如下结果,恭喜你,成功安装
Image [3].png至此,安装步骤完成
harbor使用
访问地址 //hostname:port (hostname 和 port 为上述配置)
Image [5].png
以下是对关键功能介绍
项目
以项目的维度划分镜像,可以理解为镜像组,相同镜像的不同版本可以放在一个项目里,同样项目里有完成的仓库、成员、标签、日志的管理。 注意,此处的标签,不建议维护,用全局的设置,最好最好统一,如何设置,稍后讲到
日志
harbor将日志分为日志和事件日志,比较简单,就不赘述了
Image [6].png Image [7].png
系统管理
用户管理 用于操作用户的增删、密码重置
仓库管理 拉取其他服务器镜像到本地
同步管理 可定时去拉取最新镜像
任务
垃圾清理 定时清空无用镜像
配置管理
此功能比较清晰,主要想介绍下标签,此处标签为全局,供所有镜像使用
Image [8].png
镜像推送
首先面临的是HTTP推送问题,
ERROR: Get https://192.168.1.111:81/v2/: http: server gave HTTP response to HTTPS client
复制代码
docker默认的是HTTPS,大部分场景Harbor在内网,没有HTTPS,则需要设置去除,方法简单:
Image [9].pngLinux操作
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 私服地址/仓库项目名/镜像名:标签
网友评论