CentOS部署Harbor镜像仓库

关于Harbor

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

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

    环境信息

    今天要部署的Harbor版本是1.9.0,本次部署用的机器信息如下:

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

    部署Harbor

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

  6. 打开Harbor的GitHub仓库的release页面下载离线安装包,地址是:https://github.com/goharbor/harbor/releases ,如下图红框所示,我选择了最新版的1.9.0:
  7. 将离线安装包harbor-offline-installer-v1.9.0.tgz下载到电脑上,执行以下命令解压:
tar -zxvf harbor-offline-installer-v1.9.0.tgz

解压的结果是个名为harbor的文件夹,进入该文件夹;

  1. 修改配置文件harbor.yml,主要是修改以下两个配置:

a. hostname:填写本机的IP地址或者hostname,如果已经和域名绑定了也可以填域名;

b. harbor_admin_password:管理员初始密码;
更多配置例如https、存储等,请参考官方文档按需设置;

  1. 开始安装,在install.sh文件所在目录执行命令./install.sh即可安装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. 此时应该有九个容器正常运行:
[[email protected] ~]# 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管理页面,账号是admin,密码是前面设置的harbor_admin_password的值(默认是Harbor12345):
  2. 登录成功后发现空空如也,也是,目前还没啥东西:

允许http连接

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

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

再次提醒:这里修改是远程连接Harbor服务的机器的配置,而不是Harbor服务器的配置;

推送镜像到Harbor

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

  1. 登录A电脑,选个本地镜像用来测试,我这里有个名为jenkinsci/blueocean:1.19.0的本地镜像,ID为11e2757c8bc1:
[email protected]:~# 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默认的项目名称;

  1. 执行以下命令即可从A电脑登录Harbor:
docker login 192.168.50.167 -u admin -p Harbor12345
  1. 执行命令docker push 192.168.50.167/library/jenkinsci/blueocean:1.19.0
[email protected]:~# 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服务的时候希望本文能给您一些参考。

原文地址:https://www.cnblogs.com/bolingcavalry/p/11565901.html

时间: 2024-07-30 22:20:04

CentOS部署Harbor镜像仓库的相关文章

Centos 7.x部署Harbor镜像仓库

一.环境准备 OS:CentOS Linux release 7.5.1804 (Core)?IP:172.16.8.46 安装要求如下: 二.docker安装 参考https://blog.csdn.net/xiegh2014/article/details/80454019 三.安装docker-compose curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -

Harbor镜像仓库部署

一.简介 Harbor是VMware中国研发团队开发并开源企业级Registry,对中文支持很友好. Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. Harbor具有如下特点: 1.基于角色的访问控制 - 用户与Docker镜像仓库通过"项目"进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限. 2.镜像复制 - 镜像可以在多个Registry实例中复制(同步).尤其适合于负载均衡,高可用,混合云和多云的场景. 3.

离线手动部署docker镜像仓库——harbor仓库(二)

前言: 在<离线手动部署docker镜像仓库--harbor仓库(一)>中,记录了离线部署harbor仓库的简单过程,这里主要记录修改默认访问端口80端口为1180端口的部署方式和注意点. 实验环境:harbor服务器系统:CentOS Linux release 7.4.1708 (Core)harbor服务器IP:10.0.0.101harbor版本:v1.5.0docker版本:1.13.1另外为了测试pull镜像,使用了另一台test102机器:10.0.0.102 部署过程: 1.下

部署 harbor`私有仓库

部署 harbor 私有仓库 下载 docker-compose-1.12.0 # wget https://github.com/docker/compose/releases/download/1.12.0/docker-compose-Linux-x86_64 # mv docker-compose-Linux-x86_64 /usr/bin/docker-compose # chmod a+x /usr/bin/docker-compose 下载 harbor-1.1.2 # wget

11.部署 harbor 私有仓库

11.部署 harbor 私有仓库 本文档介绍使用 docker-compose 部署 harbor 私有仓库的步骤,你也可以使用 docker 官方的 registry 镜像部署私有仓库(部署 Docker Registry). 使用的变量 本文档用到的变量定义如下: $ export NODE_IP=10.64.3.7 # 当前部署 harbor 的节点 IP $ 下载文件 从 docker compose 发布页面下载最新的 docker-compose 二进制文件 $ wget http

harbor镜像仓库原理和安装

原地址:harbor镜像仓库 目录 一:Harbor简介 1. docker registry的缺点: 2. Harbor优点 3. Harbor介绍 Harbor官方网站:http://vmware.github.io/harbor/ 二:Harbor主要组件 三:Harbor架构 1. Harbor登录过程 2. Docker push 的过程 四:harbor镜像仓库部署 1. 安装harbor环境 2. 安装harobr镜像仓库 五:Harbor使用 2. 创建镜像项目kubernete

搭建Vmware Harbor 镜像仓库

1.前置条件 : 需要有docker docker-compose 2.准备安装: mkdir /data mkdir /data/cert 上传server.crt server.key 证书文件到/data/cert下: LDAP服务器防火墙规则加入Harbor IP地址 3. 安装docker yum install docker 4.安装docker-compose curl -L https://github.com/docker/compose/releases/download/1

harbor镜像仓库-https访问配置

1. 证书的生成 在测试或开发环境中,您可以选择使用自签名证书,而不是来自受信任的第三方CA的证书.以下内容将向您展示如何创建自己的CA,并使用您的CA签署服务器证书和客户端证书. 1.1 生成ca证书 [[email protected] ~]# mkdir /docker [[email protected] ~]# cd /docker/ [[email protected] docker]# ll 总用量 0 [[email protected] docker]# openssl gen

Harbor镜像仓库使用精简指南

一.使用管理员分配用户 使用管理员登录harbor控制台,进入"系统管理"--"用户管理",点击创建用户: 填写创建用户表单,即分配一个用户账号: 二.新建项目 使用刚才创建的testuser登录harbor控制台,点击右侧"新建项目" 填写项目名称,并设置项目镜像仓库是否支持公开访问(这里设置为公开 ): 创建完成后,可以看到所建的镜像项目的管理界面: 可以针对该项目,添加可以访问的成员,并赋予权限: 其中, 1)概要:显示项目的总体容量,镜像