Harbor仓库搭建

转载自:Harbor仓库搭建及简单使用_hxt的博客-CSDN博客_harbor

一、为什么搭建Harbor仓库

就像我们有了本地git代码工具还需要代码托管平台gerrit,gitlab一样,Harbor是由Vmware公司开源的管理容器镜像的平台。

二、环境准备

Harbor的所有服务组件都是在Docker中部署的,所以官方安装使用Docker-compose快速部署,所以需要安装Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0,Docker-compose版本不小于1.6.0

准备一台虚拟机,我这里准备的是centos7

1)安装并启动docker

安装所需的包。yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

设置稳定存储库

[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker CE

[root@localhost ~]# yum install -y docker-ce docker-ce-cli containerd.io

2)、安装Docker-compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。

  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

下载指定版本的docker-compose

[root@localhost ~]# curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

原博文使用的是1.13.0, 我们可以到https://github.com/docker/compose/releases​​​​​​ 下查看版本,可以下载最新版本:

curl -L https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

二进制文件赋可执行权限

[root@localhost ~]# chmod +x /usr/local/bin/docker-compose

测试下docker-compose是否安装成功

[root@localhost ~]# docker-compose --version
Docker Compose version v2.2.3

三、Harbor服务搭建及启动

1)、下载Harbor安装文件

从GitHub上https://github.com/goharbor/harbor/releases下载指定版本的安装包

我下载了最新版本:v1.10.10

[root@localhost ~]# mkdir -p /harbor
[root@localhost ~]# cd /harbor/
[root@localhost harbor]# wget https://github.com/goharbor/harbor/releases/download/v1.10.10/harbor-online-installer-v1.10.10.tgz
[root@localhost harbor]# ls
harbor-online-installer-v1.10.10.tgz
[root@localhost harbor]# tar -zxf harbor-online-installer-v1.10.10.tgz 

2)、配置Harbor

[root@localhost harbor]# ls
harbor  harbor-online-installer-v1.10.10.tgz
[root@localhost harbor]# cd harbor
[root@localhost harbor]# ls
LICENSE  common  common.sh  docker-compose.yml  harbor.yml  install.sh  prepare
[root@localhost harbor]# vi harbor.yml

注意,新版本的docker配置放在harbor.yml中。

配置文件harbor.yml详解:

# Configuration file of Harbor

# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 机器ip地址或域名

# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80

# https related config
https:
  # https port for harbor, default is 443
#  port: 443
  # The path of cert and key files for nginx
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path

配置很简单,

首先要修改hostname为机器地址,使用的是http,所以https部分需要注掉。没有搭建自己的数据库,所以使用了默认的数据库。

还需要修改ldap认证部分。

3)、启动Harbor

修改完配置文件后,在的当前目录执行./install.sh,Harbor服务就会根据当期目录下的docker-compose.yml开始下载依赖的镜像,检测并按照顺序依次启动各个服务

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

Harbor依赖的镜像及启动服务如下:

[root@localhost harbor]# docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
harbor-core         "/harbor/harbor_core"    core                running (healthy)
harbor-db           "/docker-entrypoint.…"   postgresql          running (healthy)   5432/tcp
harbor-jobservice   "/harbor/harbor_jobs…"   jobservice          running (healthy)
harbor-log          "/bin/sh -c /usr/loc…"   log                 running (healthy)   127.0.0.1:1514->10514/tcp
harbor-portal       "nginx -g 'daemon of…"   portal              running (healthy)   8080/tcp
nginx               "nginx -g 'daemon of…"   proxy               running (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp
redis               "redis-server /etc/r…"   redis               running (healthy)   6379/tcp
registry            "/home/harbor/entryp…"   registry            running (healthy)   5000/tcp
registryctl         "/home/harbor/start.…"   registryctl         running (healthy)

启动完成后,访问刚设置的hostname即可,默认是80端口,如果端口占用,可以去修改docker-compose.yml文件中,对应服务的端口映射。

4) 配置LDAP

我配置的是AD,折腾了半天,本来以为是在harbor.yml里面写配置的,结果发现是可以到界面上去配置的。

用管理员账号登录harbor:

用户名:admin

密码:harbor.yml中配的harbor_admin_password部分

进入配置管理->认证模式:

选择LDAP

我简单的配了几个字段:

LDAP URL      ldap://XXX.389
LDAP搜索DN    XXX@XXX  注意这里使用@的写法,如果只写搜索用户名,会报49,52e的错误
LDAP搜索密码  *****
LDAP基础DN    OU=XXX,DC=XXX,DC=XXX
LDAP用户UID   sAMAccountName
LDAP搜索范围   子树
LDAP组成员     memberof

刚开始我的搜索DN配置的不对,没有写得很具体,导致如下失败,后来写成admin@example.com的形式就能登上了。

error: LDAP Result Code 49 "Invalid Credentials": 80090308: LdapErr: DSID-0C090447, comment: AcceptSecurityContext error, data 52e, v3839

如果配置不成功,想看日志,日志文件的地址配置在:harbor/docker-compose.yml中,

  log:
    image: goharbor/harbor-log:v1.10.10
    container_name: harbor-log
    restart: always
    dns_search: .
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
    volumes:
      - /var/log/harbor/:/var/log/docker/:z   
#日志文件映射在系统的/var/log/harbor目录,认证失败的错误日志在core.log中。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值