Docker harbor 安装和基础操作

Stella981
• 阅读 497

目录

  • 简介
  • 离线安装
    • 配置文件
    • 安装
    • 查看
    • 访问测试 及 简单操作
    • 创建一个用户
    • 创建一个测试仓库
    • 创建测试仓库
  • 测试上传和下载镜像
    • 上传
  • 下载镜像测试

简介

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、
镜像复制和中文支持等功能。

离线安装

本次安装的前提是已经安装好了 docker 环境的服务器,centos 7

本次使用离线安装的方式进行安装。

首先安装依赖:

yum install docker-compose -y

目前Harbor托管在GitHub上,所以需要在GitHub上下载离线安装包。

地址: https://github.com/goharbor/harbor

在GitHub上下载 harbor 的离线安装包

[root@registory src]# wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1-rc1.tgz
--2019-10-12 11:17:14--  https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1-rc1.tgz
Resolving storage.googleapis.com (storage.googleapis.com)... 216.58.200.48, 2404:6800:4008:801::2010
Connecting to storage.googleapis.com (storage.googleapis.com)|216.58.200.48|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 619113214 (590M) [application/x-tar]
Saving to: ‘harbor-offline-installer-v1.9.1-rc1.tgz’

100%[===================================================================================================================================================>] 619,113,214 5.13MB/s   in 1m 53s 

2019-10-12 11:19:07 (5.24 MB/s) - ‘harbor-offline-installer-v1.9.1-rc1.tgz’ saved [619113214/619113214]


[root@registory src]# ll harbor
total 607872
-rw-r--r-- 1 root root 622428100 Sep 27 14:52 harbor.v1.9.1.tar.gz
-rw-r--r-- 1 root root      5805 Sep 27 14:52 harbor.yml
-rwxr-xr-x 1 root root      5088 Sep 27 14:52 install.sh
-rw-r--r-- 1 root root     11347 Sep 27 14:52 LICENSE
-rwxr-xr-x 1 root root      1748 Sep 27 14:52 prepare

配置文件

[root@registory harbor]# egrep -v '#|^$' harbor.yml 
hostname: 192.168.1.120     # 这里配置的监听地址,可以是域名
http:
  port: 80                  # 端口
harbor_admin_password: Harbor12345  # 配置admin用户的密码
database:                   # 配置数据库相关的信息
  password: root123         # 数据库密码
  max_idle_conns: 50
  max_open_conns: 100
data_volume: /data              # 镜像存放的目录
clair:
  updaters_interval: 12
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor       # 日志目录
_version: 1.9.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy: 127.0.0.1,localhost,.local,.internal,log,db,redis,nginx,core,portal,postgresql,jobservice,registry,registryctl,clair
  components:
    - core
    - jobservice
    - clair

安装

直接执行解压后文件中的 install.sh 文件:

[root@registory harbor]# ./install.sh 

[Step 0]: checking installation environment ...

Note: docker version: 19.03.2

Note: docker-compose version: 1.18.0

[Step 1]: loading Harbor images ...
b80136ee24a4: Loading layer [==================================================>]  34.25MB/34.25MB
cad87ea2da29: Loading layer [==================================================>]  77.02MB/77.02MB
034ded39ed39: Loading layer [==================================================>]  3.072kB/3.072kB
f6ca716ef169: Loading layer [==================================================>]   59.9kB/59.9kB
baf21a4a14d3: Loading layer [==================================================>]  61.95kB/61.95kB
Loaded image: goharbor/redis-photon:v1.9.1
... ... ...
... ... ...

Creating registry ... done
Creating harbor-core ... done
Creating network "harbor_harbor" with the default driver
Creating nginx ... done
Creating redis ... 
Creating harbor-db ... 
Creating registryctl ... 
Creating registry ... 
Creating harbor-portal ... 
Creating harbor-core ... 
Creating harbor-jobservice ... 
Creating nginx ... 

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://192.168.1.120. 
For more details, please visit https://github.com/goharbor/harbor .

查看

[root@registory harbor]# netstat -lntup | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      3071/docker-proxy

访问测试 及 简单操作

直接访问 192.168.1.120

Docker harbor 安装和基础操作

登陆

Docker harbor 安装和基础操作

创建一个用户

Docker harbor 安装和基础操作

创建一个测试仓库

Docker harbor 安装和基础操作
Docker harbor 安装和基础操作

创建测试仓库

Docker harbor 安装和基础操作

Docker harbor 安装和基础操作

测试上传和下载镜像

上传

注意: 默认情况下,docker使用的是https方式上传和下载,本次是用的是80端口,所以需要手动配置一下

[root@registory ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://0tb09e4d.mirror.aliyuncs.com"],     # 镜像加速
  "insecure-registries": ["registry.kubernetes"]               # 这里列表中可配置多个
}

说明:上述中的registry.kubernetes手动写了hosts文件,所以需要注意,在需要使用该registry的机器上,都需要能解析。

[root@registory ~]# grep registry /etc/hosts
192.168.1.120 registry registry.kubernetes

修改镜像 tag 之后上传

首先登陆harbor,使用上面创建的tracy用户

[root@registory harbor]# docker login registry.kubernetes
Username: tracy 
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

修改tag后上传

[root@registory harbor]# docker tag myweb:v0.3-5 registry.kubernetes/test/myweb:v0.3-5
[root@registory harbor]# docker push registry.kubernetes/test/myweb:v0.3-5
The push refers to repository [registry.kubernetes/test/myweb]
aac16c52a6d5: Pushed 
076c58d2644f: Pushed 
b2cbae4b8c15: Pushed 
5ac9a5170bf2: Pushed 
a464c54f93a9: Pushed 
v0.3-5: digest: sha256:2ec492300be9fe3e79bf7992fcf8e643bd72fe5e64c63091f86dc3a50991fe9c size: 1360

下载镜像测试

注意: 默认情况下,docker使用的是https方式上传和下载,本次是用的是80端口,所以需要手动配置一下

[root@node03 ~]# cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://0tb09e4d.mirror.aliyuncs.com"],     # 镜像加速
  "insecure-registries": ["registry.kubernetes"]               # 这里列表中可配置多个
}

说明:上述中的registry.kubernetes手动写了hosts文件,所以需要注意,在需要使用该registry的机器上,都需要能解析。

[root@node03 ~]# grep registry /etc/hosts
192.168.1.120 registry registry.kubernetes


[root@node03 ~]# docker image pull registry.kubernetes/test/myweb:v0.3-5
v0.3-5: Pulling from test/myweb
bdf0201b3a05: Pull complete 
3d0a573c81ed: Pull complete 
8129faeb2eb6: Pull complete 
3dc99f571daf: Pull complete 
f17647d105d9: Pull complete 
Digest: sha256:2ec492300be9fe3e79bf7992fcf8e643bd72fe5e64c63091f86dc3a50991fe9c
Status: Downloaded newer image for registry.kubernetes/test/myweb:v0.3-5
registry.kubernetes/test/myweb:v0.3-5
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
京东云开发者 京东云开发者
6个月前
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这