Harbor 私有镜像仓库部署


前言

在实际工作中,我们一般都是要部署自己的私有仓库的平台,如 Gitlab、Maven、Harbor等。今主要介绍的是 Harbor 私有镜像仓库的部署过程,首先介绍一下什么是 Harbor:Harbor is an open source registry that secures artifacts with policies and role-based access control, ensures images are scanned and free from vulnerabilities, and signs images as trusted. 简单的理解就是,Harbor 是基于镜像复制策略和角色访问控制的开源注册表。

一、规划

1.1 服务规划

OSserverversion备注
CentOS7.8(162.14.76.192)-4C/8G/50Gdocker18.06.3私有镜像仓库
docker-compose2.1.1
Harbor2.3.4
CentOS7.8(162.16.234.128)-1C/2G/50Gdocker18.06.3验证私有镜像仓库可用性

1.2 资源下载

二、部署

2.1 Docker 部署

可参照阿里来部署,大家可以去看看,这里就不在演示。

Docker 部署文档

2.2 Docker-Compose 部署

1、资源下载

去 GitHub 下载资源,不过下载非常慢(国外),建议通过迅雷下载,还是比较快的,资源下载地址请看 1.2 小节

在这里插入图片描述

2、将下载资源上传至服务器并做软连接

ln -s /opt/docker-compose-linux-x86_64 /usr/local/bin/docker-compose

3、赋予 x 权限

chmod +x /opt/docker-compose-linux-x86_64

4、查看版本

docker-compose -v
Docker Compose version v2.1.1

2.3 Harbor 部署

1、资源下载

在这里插入图片描述

2、将下载资源上传至服务器并解压

tar xzf harbor-offline-installer-v2.3.4.tgz

# 查看一下解压内容
cd harbor && ll
total 596288
-rw-r--r-- 1 root root      3361 Nov  9 19:01 common.sh
-rw-r--r-- 1 root root 610560420 Nov  9 19:01 harbor.v2.3.4.tar.gz
-rw-r--r-- 1 root root      7840 Nov  9 19:01 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2500 Nov  9 19:01 install.sh
-rw-r--r-- 1 root root     11347 Nov  9 19:01 LICENSE
-rwxr-xr-x 1 root root      1881 Nov  9 19:01 prepare

3、修改配置文件

cp harbor.yml.tmpl harbor.yml
vim harbor.yml
# 主要修改以下几部分就可以

hostname: 162.14.76.192              # 服务器IP或域名
http:
  port: 80
harbor_admin_password: zhurs@123     # 登录密码
database:
  password: root123                  # 数据存储密码
  max_idle_conns: 100
  max_open_conns: 900
data_volume: /data/harbor/data       # 数据存储路径(无需手动创建)
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false
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: /data/harbor/logs     # 日志路径(需手动创建,否则报错无法找打路径)
_version: 2.3.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy

4、更新配置文件

./prepare

5、安装

./install.sh

在这里插入图片描述

6、查看一下容器状态

在这里插入图片描述

三、验证

3.1 可用性验证

浏览器输入http://162.14.76.192/

登录用户:admin

登录密码:zhurs@123

在这里插入图片描述

登录成功!!

在这里插入图片描述

3.2 功能性验证

1、Docker 客户端配置 Harbor 私服连接

cat > /etc/docker/daemon.json << EOF
{ "insecure-registries":["162.14.76.192"] }
EOF

2、重启 Docker 客户端

systemctl daemon-reload
systemctl restart docker

3、Docker 客户端登录 Harbor 私服

docker login -u admin -p zhurs@123 162.14.76.192

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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

4、任意 pull 一个测试镜像

docker pull busybox

5、将该镜像打 tag 并 push 到 Harbor 镜像仓库

docker tag busybox:latest 162.14.76.192/library/busybox:v1.0

# 查看本地镜像
docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
162.14.76.192/library/busybox   v1.0                7138284460ff        2 weeks ago         1.24MB
busybox                         latest              7138284460ff        2 weeks ago         1.24MB

# push到Harbor仓库
docker push 162.14.76.192/library/busybox:v1.0
The push refers to repository [162.14.76.192/library/busybox]
d94c78be1352: Pushed 
v1.0: digest: sha256:34efe68cca33507682b1673c851700ec66839ecf94d19b928176e20d20e02413 size: 527

6、在 Harbor web 界面看看 push 的镜像

在这里插入图片描述

7、删除本地镜像,并 pull 远程 Harbor 仓库镜像

# 拉取镜像
docker pull 162.14.76.192/library/busybox:v1.0
v1.0: Pulling from library/busybox
e685c5c858e3: Pull complete 
Digest: sha256:34efe68cca33507682b1673c851700ec66839ecf94d19b928176e20d20e02413
Status: Downloaded newer image for 162.14.76.192/library/busybox:v1.0

# 查看镜像
docker images 
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
162.14.76.192/library/busybox   v1.0                7138284460ff        2 weeks ago         1.24MB

可通过 web 界面看到我们的操作日志

在这里插入图片描述

至此,基本的搭建已经完成!!且测试了 Harbor 私服的可用性。

四、FAQ

4.1 路径问题

1、数据路径

在配置文件中定义,定义后无需手动创建(当然也可手动创建),在执行./install.sh后会自动创建。

2、日志路径

指定路径后需要手动创建,否则报错(找不到日志路径),我测试的时候是这样的,不知道各位小伙伴是什么测试结果。

3、配置文件路径

需进入 Harbor 解压目录执行相关操作,包括配置文件,脚本执行等操作,当然你也可以做相关的软连接统一目录结构。

4.2 服务器重启问题

对 Harbor 所在的服务器重启后,可能无法正常访问 Harbor,如下图所示,这是重启后一些服务的状态,明显看到有好几个服务已经宕掉了。

在这里插入图片描述

解决的方法就是:进入 Harbor 的解压目录并执行./install.sh,直到显示如下图后,就可正常访问了。

在这里插入图片描述

4.3 配置文件修改

当我想修改 Harbor web 端口为 82 时,只需修改 harbor.yml 文件的 port,修改完成后直接执行 ./install.sh 即可生效,如下图是修改后的登录结果,如果是云服务,注意安全组开放访问端口。

在这里插入图片描述

总结

以上就是 Harbor 私服的部署过程,其实部署很简单,没有什么技术可言,只是简单的记录一下,部署过程也基本上是一键部署。更多的还是需要我们了解 Docker 的工作原理、底层技术,以及部署 Harbor 的目的和意义。

<点击跳转至开头>

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云计算-Security

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值