企业级Docker镜像仓库Harbor部署与使用
yum install docker
官网地址:https://docs.docker.com/compose/install/
运行此命令以下载Docker Compose的当前稳定版本
1
|
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
换成国内的
1
|
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
对二进制文件应用可执行权限:
1
|
chmod +x /usr/local/bin/docker-compose |
安装完成后,可测试 docker-compose --version
在实际生产运维中,往往需要把镜像发布到几十、上百台或更多的节点上。这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我们需要一个像Git仓库一样系统来统一管理镜像。这里介绍的是一个企业级镜像仓库Harbor,将作为我们容器云平台的镜像仓库中心。
Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
官方地址:https://vmware.github.io
Github:https://github.com/goharbor/harbor
1、Harbor主要功能
基于角色访问控制(RBAC)
在企业中,通常有不同的开发团队负责不同的项目,镜像像代码一样,每个人角色不同需求也不同,因此就需要访问权限控制,根据角色分配相应的权限。
例如,开发人员需要对项目构建这就用到读写权限(push/pull),测试人员只需要读权限(pull),运维一般管理镜像仓库,具备权限分配能力,项目经理具有所有权限。镜像复制
可以将仓库中的镜像同步到远程的Harbor,类似于MySQL主从同步功能。
LDAP
Harbor支持LDAP认证,可以很轻易接入已有的LDAP。
镜像删除和空间回收
Harbor支持在Web删除镜像,回收无用的镜像,释放磁盘空间。
图形页面管理
用户很方面搜索镜像及项目管理。
审计
对仓库的所有操作都有记录。
REST API
完整的API,方便与外部集成。
2、Harbor组件
组件 | 功能 |
harbor-adminserver | 配置管理中心 |
harbor-db | Mysql数据库 |
harbor-jobservice | 负责镜像复制 |
harbor-log | 记录操作日志 |
harbor-ui | Web管理页面和API |
nginx | 前端代理,负责前端页面和镜像上传/下载转发 |
redis | 会话 |
registry | 镜像存储 |
3、Harbor部署
环境要求:
Harbor安装有3种方式:
在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
离线安装:安装包包含部署的相关镜像,因此安装包比较大
OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor
我们采用离线安装,首先下载离线安装包:https://github.com/vmware/harbor/releases
HTTP方式部署
基本配置:
yum install wget
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.4.tgz
准备配置文件:
# ./prepare
安装并启动Harbor:
# ./install.sh
查看运行状态:
部署完成,是不是很简单呢!
如果有非Up状态,先看日志:
# ls /var/log/harbor/
adminserver.log jobservice.log mysql.log proxy.log redis.log registry.log ui.log
HTTPS方式部署:
如果想以https加密方式提供服务可以参考这个免费的视频教程:https://ke.qq.com/course/311382
或者参考官方文档:https://github.com/vmware/harbor/blob/master/docs/configure_https.md
4、登录Web页面
浏览器输入:http://10.206.240.188
账号:admin
密码:Harbor12345
这里有4个项目,library是默认自带的,通常用这个存储一些公共的镜像,这个项目下镜像谁都可以pull,但不能push,push需要先登录。其他3个项目是我自己创建的,请忽略。
5、library项目赋予新用户push权限
先创建一个用户:
进入library项目,将用户加入这个成员:
这样lizhenliang用户就具备了对这个library项目的push权限。
注:创建新项目赋予用户权限同等方式。
7、上传镜像
接下来将刚才构建的镜像推送到Harbor仓库,先看看我们要推送的镜像:
在推送之前,需要注意第一列,这个完整格式是:
如果镜像只放在本地存储REPOSITORY写什么都可以,但推送到镜像仓库就必须指定仓库中心地址。
所以,先打重命名REPOSITORY,其实就是引用源镜像标记了一个目标镜像:
访问拒绝,刚说过,push需先登录:
8、下载镜像
其他Docker主机怎么下载刚推送的镜像呢?
由于我们搭建的Harbor是以HTTP提供服务的,而Docker CLI默认以HTTPS 访问仓库,所以要先配置可信任,否则pull镜像仓库失败。如果是HTTPS提供服务就不用配置这一步了。
pull的地址跟push时是一样的。
企业级Docker镜像仓库Harbor部署与使用的更多相关文章
- docker 镜像仓库 Harbor 部署 以及 跨数据复制
docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理 ...
- docker 系列 - 企业级私有镜像仓库Harbor部署(转载)
本文转载自 搜云库 的文章 https://www.jianshu.com/p/7d76850de03f , 感谢作者 3.png 上一篇文章搭建了一个具有基础功能,权限认证.TLS 的私有仓库, ...
- Docker镜像仓库Harbor部署
一.Harbor组件 组件 功能 harbor-adminserver 配置管理中心 harbor-db Mysql数据库 harbor-jobservice 负责镜像复制 harbor-log 记录 ...
- Harbor - 私有企业级 Docker 镜像仓库
GitHub 地址 容器镜像服务 Docker镜像的基本使用 Docker:企业级私有镜像仓库Harbor使用 Harbor 是基于 Docker Registry 的企业级镜像仓库,安装后的使用方法 ...
- 离线手动部署docker镜像仓库——harbor仓库(HTTPS)
实验环境: harbor服务器系统:CentOS Linux release 7.5.1804 (Core)harbor服务器IP:10.1.12.114harbor版本:v1.5.0docker版本 ...
- Docker镜像仓库Harbor之Swagger REST API整合配置
转载自:https://cloud.tencent.com/developer/article/1010618 1.Swagger 介绍 Swagger 是一个规范和完整的框架,用于生成.描述.调用和 ...
- 企业级Docker私有仓库Harbor
一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docke ...
- Docker镜像仓库Harbor搭建及配置
一.harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distribut ...
- docker开源仓库Harbor部署笔记
Harbor介绍Harbor是Vmvare团队开发的开源企业级registry仓库,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务.项目地址:ht ...
随机推荐
- 3_time
3. Time and order What is order and why is it important? What do you mean "what is order"? ...
- c#自带压缩类实现的多文件压缩和解压
用c#自带的System.IO.Compression命名空间下的压缩类实现的多文件压缩和解压功能,缺点是多文件压缩包的解压只能调用自身的解压方法,和现有的压缩软件不兼容.下面的代码没有把多文件的目录 ...
- python面试的100题(3)
3.输入日期, 判断这一天是这一年的第几天? import datetime def dayofyear(): year = input("请输入年份: ") month = in ...
- 从bbs.3dmgame.com与qq的登录解析oauth2.0协议
点击3dm上的qq图标,浏览器跳转到,地址为: https://graph.qq.com/oauth2.0/show ?which=Login &display=pc &respons ...
- spring(四):IoC初始化流程&BeanDefinition加载注册
ApplicationContext context = new ClassPathXmlApplicationContext("hello.xml"); /** * * @par ...
- C++-POJ2155-Matrix[数据结构][树状数组]
二维树状数组+叉分 区间修改转化为单点修改 单点查询本来就可视为区间查询 于是本题可解 PS:不知道为什么函数传参数,传的是变量就会出现奇奇怪怪的问题? 所以读入单独写了,还有就是循环的初始化硬是多定 ...
- 代码架构.md
代码架构 待办 昨天待办 decription decription 我的流程逻辑(异常处理方式) 1568097677501.drawio.html 29.94 KB 异常的两种处理方式 异常的两种 ...
- 2020 CCPC比赛
https://ac.nowcoder.com/acm/contest/4010/A 这道题枚举区间长度的贡献值: 当区间长度为1时,就是所有元音数的个数: 当区间长度为2时,区间[2,n-1]的数贡 ...
- dfs题型二(迷宫问题)
取自:<王道论坛计算机考研机试指南>6.5节 例 6.7 Temple of the bone(九度 OJ 1461)时间限制:1 秒 内存限制:32 兆 特殊判题:否题目描述:The d ...
- Python多线程join/setDaemon
import threading, time class Test(): def test1(self): print("--") time.sleep(3) print(&quo ...