ubuntu 安装harbor仓库
一、介绍
- Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。
- Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。
二、Harbor核心组件解释
- Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
- db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
- UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
- jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
- Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
- Registry:镜像仓库,负责存储镜像文件。
- Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
三:Harbor和Registry的比较
Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
1.提供分层传输机制,优化网络传输
Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
2.提供WEB界面,优化用户体验
只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
3.支持水平扩展集群
当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
4.良好的安全机制
企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。
5.Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。
四:Harbor简单部署
官方最小配置
- 2个cpu
- 4g内存
- 40g硬盘,因为是存储镜像的所以推荐硬盘大点
安装前配置
在真正安装之前,我们还要安装下面这几个组件
- docker
- docker-compose
- python
- openssl
安装docker
更新apt源,并添加https支持
sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y
使用utc源添加GPG Key
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add
添加Docker-ce稳定版源地址
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装docker-ce
目前最新版本是19.03.1
sudo apt-get update
sudo apt install -y docker-ce=5:19.03.1~3-0~ubuntu-xenial
安装docker-compose
参考官方链接:https://docs.docker.com/compose/install/
运行此命令下载docker compose的当前稳定版本:
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
对二进制文件应用可执行权限
sudo chmod +x /usr/local/bin/docker-compose
由于ubuntu 16.04,默认已经有了python3,openssl也已经安装好了。
root@ubuntu:~# dpkg -l |grep openssl
ii libgnutls-openssl27:amd64 3.4.-4ubuntu1. amd64 GNU TLS library - OpenSSL wrapper
ii openssl 1.0.2g-1ubuntu4. amd64 Secure Sockets Layer toolkit - cryptographic utility
下载Harbor离线包
https://github.com/vmware/harbor/releases
安装有两种方式,一种是off-line ,一种是on-line,即离线和在线安装,离线安装需要下载的安装包较大,在线安装下载的安装包很小,课题根据自己的情况选择,我选择的是1.8.1版本
下载在线安装包
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.1.tgz
如果无法访问google,我已经上传到百度网盘了,可自行下载
链接:https://pan.baidu.com/s/1mRtaFNfYViz5xywYB9GnXw
提取码:xsc0
安装Harbor
解压安装包
tar zxvf harbor-online-installer-v1.8.1.tgz -C /usr/src/
cd /usr/src/harbor
编辑配置文件
vim harbor.yml
修改hostname为本机ip地址
hostname: 192.168.10.122
其它参数,可以根据实际情况修改,去除多余的注释和空行,配置文件如下:
root@ubuntu:/usr/src/harbor# cat harbor.yml |grep -v "^#"|grep -v " #"|grep -v "^$"
hostname: 192.168.10.122
http:
port:
harbor_admin_password: Harbor12345
database:
password: root123
data_volume: /data
clair:
updaters_interval:
http_proxy:
https_proxy:
no_proxy: 127.0.0.1,localhost,core,registry
jobservice:
max_job_workers:
chart:
absolute_url: disabled
log:
level: info
rotate_count:
rotate_size: 200M
location: /var/log/harbor
_version: 1.8.
之后直接执行
./install.sh
出现以下提示,表示安装成功
✔ ----Harbor has been installed and started successfully.---- Now you should be able to visit the admin portal at http://192.168.10.122.
For more details, please visit https://github.com/goharbor/harbor .
之后如果你想修改某一个配置比如你要把域名修改一下,我是这么做的先修改上面harbor.cfg这个文件,之后重新执行install.sh这个文件就可以了
访问页面
http://192.168.10.122
使用默认的账号:admin,密码:Harbor12345登录验证

登录成功之后,效果如下:

五、测试推送镜像
登录到另外一台服务器,确保docker已经安装好了。
本地配置仓库地址
由于默认的harbor,已经创建了一个公开项目 libary。
vim /etc/docker/daemon.json
内容如下:
{"insecure-registries": ["192.168.10.122"]}
接着重启服务
systemctl restart docker
推送镜像
登录仓库,admin密码还是Harbor12345
root@k8s-node1:~# docker login 192.168.10.122
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
现在下载一个镜像alpine
docker pull alpine
给镜像打tag
docker tag alpine:latest 192.168.10.122/library/alpine
推送镜像
root@k8s-node1:~# docker push 192.168.10.122/library/alpine
The push refers to repository [192.168.10.122/library/alpine]
1bfeebd65323: Pushed
latest: digest: sha256:57334c50959f26ce1ee025d08f136c2292c128f84e7b229d1b0da5dac89e9866 size:
pull一次仓库上镜像的pulls就会加一次,可以在web界面上看的

增加开机启动
vi /etc/rc.local
最后一行添加
#harbor start
cd /usr/src/harbor && docker-compose up -d
注意事项
公开的项目,推送镜像时,docker必须要登录。
下载镜像时,无须登录。
非公开项目,下载和推送,必须docker登录才行。
本文参考链接:
https://blog.51cto.com/11093860/2117805
https://yq.aliyun.com/articles/637155
ubuntu 安装harbor仓库的更多相关文章
- 离线手动部署docker镜像仓库——harbor仓库(HTTPS)
实验环境: harbor服务器系统:CentOS Linux release 7.5.1804 (Core)harbor服务器IP:10.1.12.114harbor版本:v1.5.0docker版本 ...
- Ubuntu 安装docker CE以及harbor
Docker CE安装 系统建议版本:Ubuntu 16.04 官方安装文档连接:https://docs.docker.com/install/linux/docker-ce/ubuntu/#pre ...
- 安装harbor私有镜像仓库
有朋友安装harbor的过程中遇到很多问题,为此写一篇最简单安装harbor的文档,希望能帮助所有刚开始接触harbor的新手.harbor的架构不做探究. 实验验环境:os --> cento ...
- harbor仓库安装
https://6xyun.cn/article/50 环境: 192.168.0.65 harbor .docker 一.安装相关依赖 .安装Docker Docker 使用离线版docker-ce ...
- Linux下安装Harbor 1.8.0 仓库的安装和使用(亲测)
根据Harbor官方描述: Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distri ...
- 搭建harbor仓库、LDAP认证
ldap: 192.168.199.177 c5game.com 宿主机:192.168.199.224 测试客户机:192.168.199.223 安装docker.docker-compose 访 ...
- ubuntu安装和配置SVN【转】
ubuntu安装和配置SVN 转自:http://www.jb51.net/os/Ubuntu/56394.html 第一步:安装apache2 libapache2-svn subversion ...
- [Kubernetes]CentOS7下搭建Harbor仓库
环境依赖: Harbor仓库需要环境:Python 2.7或以上版本,Docker 1.10或以上,Docker Compose 1.6.0或以上. CentOS7自带Python,所以不需要安装. ...
- 安装Harbor
一.安装Harbor 1. Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Dock ...
随机推荐
- 【CSP-S膜你考】即时战略(模拟)
Problem B. 即时战略 (rts.c/cpp/pas) 注意 Input file: rts.in Output file: rts.out Time Limit : 2 seconds Me ...
- 统计学基础知识(一)---描述统计学(Descriptive Statistics)
描述统计学(Descriptive Statistics):将数据的信息以表格, 图形或数值的形式进行汇总. 数据类型:分为定量数据(数值型数据)和定性数据(类别型数据).数值型数据又可以分为连续型和 ...
- linux修改/etc/profile权限
修改/etc/profile时提示为只读文件,不允许修改, 敲#chmod 777 /etc/profile后仍不允许修改 解决办法: 在root权限下敲 #:mount -o remount,rw ...
- IO多路复用之select poll epoll
参考文档: http://blog.csdn.net/tennysonsky/article/details/45745887 select(),poll(),epoll()都是I/O多路复用的机制. ...
- PHP面试-复习知识点整理
false的七种情况 整型0 浮点0.0 布尔false 空字符串'',"" 字符串'0' 空数组[] NULL 超全局数组 $GLOBALS,包含下面8个超全局数组的值 $_GE ...
- Transform the vot dataset into 4 corner format
Transform the vot dataset into 4 corner format Matlab code to change the 8 value ground truth into 4 ...
- ubuntu16 安装 qBittorrent ( Linux下BT下载图形工具 )
qBittorrent 是QT编写的一款BT下载软件,支持FreeBSD, Linux, macOS, OS/2, Windows: 官网:https://www.qbittorrent.org/ 在 ...
- Logstash动态模板映射收集Nginx的Json格式日志
Logstash传输给ES的数据会自动映射为5索引,5备份,字段都为text的的索引.这样基本上无法进行数据分析.所以必须将Logstash的数据按照既定的格式存储在ES中,这时候就要使用到ES模板技 ...
- Logstash配置以服务方式运行
Logstash官网最新版下载地址以及YUM源:https://www.elastic.co/cn/downloads/logstash Logstash最常见的运行方式即命令行运行 ./bin/lo ...
- window操作系统分区
注意GPT分区模式不能创建扩展分区和逻辑分区