文档章节

CentOS部署Harbor镜像仓库

 程序员欣宸
发布于 09/22 09:14
字数 1270
阅读 12
收藏 0

关于Harbor

Harbor是用于存储和分发Docker镜像的镜像仓库服务,相比Docker Registry,Harbor在安全、标识、管理等方面做了增强,更适合企业使用;

  1. 官方网站:https://goharbor.io/
  2. 官方开源:https://github.com/goharbor/harbor

环境信息

今天要部署的Harbor版本是<font color="blue">1.9.0</font>,本次部署用的机器信息如下:

  1. 操作系统:CentOS Linux release 7.7.1908
  2. Docker:19.03.2
  3. docker-compose:1.23.2

部署Harbor

Harbor官方提供了在线和离线两种安装方式,考虑到企业服务器有可能无法访问外网,因此选择离线安装更加实用;

  1. 打开Harbor的GitHub仓库的release页面下载离线安装包,地址是:https://github.com/goharbor/harbor/releases ,如下图红框所示,我选择了最新版的1.9.0: 在这里插入图片描述
  2. 将离线安装包<font color="blue">harbor-offline-installer-v1.9.0.tgz</font>下载到电脑上,执行以下命令解压:
tar -zxvf harbor-offline-installer-v1.9.0.tgz

解压的结果是个名为<font color="blue">harbor</font>的文件夹,进入该文件夹;

  1. 修改配置文件<font color="blue">harbor.yml</font>,主要是修改以下两个配置: a. hostname:填写本机的IP地址或者hostname,如果已经和域名绑定了也可以填域名; b. harbor_admin_password:管理员初始密码; 更多配置例如https、存储等,请参考官方文档按需设置;
  2. 开始安装,在install.sh文件所在目录执行命令<font color="blue">./install.sh</font>即可安装Harbor,部署成功的控制台信息如下:
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating registryctl   ... done
Creating registry      ... done
Creating harbor-db     ... done
Creating redis         ... done
Creating harbor-portal ... done
Creating harbor-core   ... done
Creating nginx             ... done
Creating harbor-jobservice ... done

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

Now you should be able to visit the admin portal at http://192.168.50.167. 
For more details, please visit https://github.com/goharbor/harbor .
  1. 此时应该有九个容器正常运行:
[root@vostro ~]# docker ps
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS                 PORTS                       NAMES
dac02ab21a1f        goharbor/harbor-jobservice:v1.9.0                   "/harbor/harbor_jobs…"   3 hours ago         Up 3 hours (healthy)                               harbor-jobservice
998fa5676a08        goharbor/nginx-photon:v1.9.0                        "nginx -g 'daemon of…"   3 hours ago         Up 3 hours (healthy)   0.0.0.0:80->8080/tcp        nginx
bc87d9a5a7f7        goharbor/harbor-core:v1.9.0                         "/harbor/harbor_core"    3 hours ago         Up 3 hours (healthy)                               harbor-core
ce495560ef35        goharbor/harbor-db:v1.9.0                           "/docker-entrypoint.…"   3 hours ago         Up 3 hours (healthy)   5432/tcp                    harbor-db
25a13fddd607        goharbor/harbor-portal:v1.9.0                       "nginx -g 'daemon of…"   3 hours ago         Up 3 hours (healthy)   8080/tcp                    harbor-portal
b9f72d4da022        goharbor/redis-photon:v1.9.0                        "redis-server /etc/r…"   3 hours ago         Up 3 hours (healthy)   6379/tcp                    redis
3804003153ae        goharbor/harbor-registryctl:v1.9.0                  "/harbor/start.sh"       3 hours ago         Up 3 hours (healthy)                               registryctl
d8d570e88874        goharbor/registry-photon:v2.7.1-patch-2819-v1.9.0   "/entrypoint.sh /etc…"   3 hours ago         Up 3 hours (healthy)   5000/tcp                    registry
2d940d7fd271        goharbor/harbor-log:v1.9.0                          "/bin/sh -c /usr/loc…"   3 hours ago         Up 3 hours (healthy)   127.0.0.1:1514->10514/tcp   harbor-log
  1. 由于Harbor的web服务使用了宿主机的80端口,所以在浏览器直接输入宿主机的IP地址即可访问Harbor的web管理页面,账号是<font color="blue">admin</font>,密码是前面设置的<font color="blue">harbor_admin_password</font>的值(默认是Harbor12345): 在这里插入图片描述
  2. 登录成功后发现空空如也,也是,目前还没啥东西: 在这里插入图片描述

允许http连接

接下来我们要验证Harbor服务是否可用,验证方式是从另一台Linux电脑(下面称之为A电脑)远程推送镜像到Harbor机器; Harbor默认是不允许http连接的,这里可以修改设置来支持http连接,以便后续的验证操作;

  1. 如果要从A电脑连接Harbor服务器,那么要对A电脑做设置,这里A电脑是Linux操作系统;
  2. 编辑A电脑的<font color="blue">/etc/docker/daemon.json</font>文件(如果不存在就新建),增加以下内容,192.168.50.167是Harbor服务器的IP地址:
{
  "insecure-registries":["192.168.50.167"]
}
  1. 重启使配置生效:
systemctl daemon-reload  && systemctl restart docker

再次提醒:<font color="red">这里修改是远程连接Harbor服务的机器的配置,而不是Harbor服务器的配置;</font>

推送镜像到Harbor

接下来验证Harbor的服务,在A电脑上尝试将本机的镜像推送到Harbor;

  1. 登录A电脑,选个本地镜像用来测试,我这里有个名为<font color="blue">jenkinsci/blueocean:1.19.0</font>的本地镜像,ID为<font color="blue">11e2757c8bc1</font>:
root@hedy:~# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
jenkinsci/blueocean                 1.19.0              11e2757c8bc1        7 days ago          553MB
  1. 执行以下命令,将选定的本地镜像修改名称和TAG:
docker tag 11e2757c8bc1 192.168.50.167/library/jenkinsci/blueocean:1.19.0

上述命令中,192.168.50.167是安装harbor的时候,harbor.yml文件中配置的hostname的值,library是harbor默认的项目名称; 3. 执行以下命令即可从A电脑登录Harbor:

docker login 192.168.50.167 -u admin -p Harbor12345
  1. 执行命令<font color="blue">docker push 192.168.50.167/library/jenkinsci/blueocean:1.19.0</font>
root@hedy:~# docker push 192.168.50.167/library/jenkinsci/blueocean:1.19.0
The push refers to repository [192.168.50.167/library/jenkinsci/blueocean]
2963284ab4ce: Pushing [================================================>  ]  58.27MB/60.25MB
c4a4de444fad: Pushing [========>                                          ]  47.87MB/267.6MB
850b4f512dc8: Pushed 
abdaf43f94b6: Pushed 
a6a27b82134d: Pushed 
d6bee87a74b8: Pushed 
28c6bdb5fda9: Pushed 
bb25d1c7cc8a: Pushed 
e2419390abaa: Pushing [========================>                          ]  37.29MB/77.36MB
d6982687f77e: Pushed 
c9659702491d: Pushed 
ed4e100c24a1: Pushing [==========================================>        ]  36.71MB/43.37MB
ceaf9e1ebef5: Pushing [======>                                            ]  12.58MB/99.29MB
9b9b7f3d56a0: Waiting 
f1b5933fe4b5: Waiting
  1. 上传完毕,登录Harbor网页,可以看到新上传的镜像: 在这里插入图片描述 至此,实战完毕,在您搭建Harbor服务的时候希望本文能给您一些参考。

© 著作权归作者所有

粉丝 0
博文 39
码字总数 67477
作品 0
深圳
私信 提问
Docker镜像仓库Harbor之搭建及配置

目录 Harbor介绍 环境、软件准备 Harbor服务搭建 Harbor跨数据复制配置 FAQ 1、Harbor 介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从...

aixiaoyang168
2017/06/21
0
0
harbor部署到k8s中使用

一、概述   harbor是什么呢?英文单词的意思是:港湾。港湾用来存放集装箱(货物的),而docker的由来正是借鉴了集装箱的原理,所以harbor是用于存放docker的镜像,作为镜像仓库使用。官方的...

W-D
01/10
0
0
Kubernetes-通过Rancher从Harbor私有仓库拉取镜像

引言   前一篇文章详细描述了如何使用rancher搭建Kubernetes高可用集群,集群搭建好了后,我们就需要开始部署应用了,那么如何从私有镜像仓库拉取镜像呢? 原理   Harbor使用了基于角色的...

statmoon
2018/09/18
0
0
Harbor用户机制、镜像同步和与Kubernetes的集成实践

Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控...

msj0905
2018/06/27
0
0
【内网福音】如何离线部署Rancher

对于在公司内网环境中、无法访问互联网的用户而言,离线安装部署Rancher是解决问题的关键。本文是Rancher离线部署教程,专为内网用户排坑解难。 版本说明 OS:Centos7.3Docker version: 1.12...

RancherLabs
2017/11/08
168
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部