Docker 私有镜像仓库 二:Harbor部署


Harbor 是一个由 CNCF(Cloud Native Computing Foundation)托管的 开源容器镜像仓库,主要用于存储和分发 Docker 镜像和 Helm Charts,同时增强了原生 Docker Registry 的功能,特别适合企业级使用场景。其实 Harbor 最早正是由 VMware 开发的开源项目,目的是增强 Docker Registry 的企业级功能,并解决容器镜像管理的诸多问题

 

下载地址:

https://github.com/goharbor/harbor/releases

系统环境:RockyLinux

 

前提

安装docker:

https://www.yesdotnet.com/archive/post/627869331431429.html

配置docker国内镜像:

https://www.yesdotnet.com/archive/post/627878383202309.html

 号外!号外!号外!

由于文章写的时候理解不深,harbor推荐解压目录是root目录。因为最终会生成 docker-compose.yml。用于docker编排。

放到root是我感觉比较合理的做法。因为正常来说我的docker-compose.yml都是放到root下面的。这里也就是 root/harbor/docker-compose.yml。还可以接受,放到/tmp/下的话着实难以理解,可不要尝试着把docker-compose.yml迁移到其他目录。麻烦切不可用。因为后期对配置做修改的话会先删除coommon的config再运行 /root/harbor/prepare 命令的。这个命令会重新生成配置,以及docker-compose.yml。

Markup 全选
# 停止容器
docker compose down
# 切换目录
cd /root/harbor
# 删除config配置
rm -rf ./common/config/*
# 删除docker编排配置文件
rm -f ./docker-compose.yml
# 重新生成
./prepare

一、放到服务器上并解压

上传目录:/tmp/harbor

解压命令:

Markup 全选
tar -xvf /tmp/harbor-offline-installer-v2.13.1.tgz -C /root/

二、创建数据存储目录: Harbor 需要持久化存储其数据(镜像、数据库、配置等)。

Markup 全选
mkdir -pv /opt/harbor/data

三、生成一个https证书

新建 /opt/harbor/ssl 文件夹

Markup 全选
mkdir -pv /opt/harbor/ssl

终端进入ssl目录。我们生成的https证书文件会放在当前目录

Markup 全选
cd /opt/harbor/ssl/

3.1 生成私钥文件

生成一个2048位的RSA私钥。

Markup 全选
openssl genrsa -out private.key 2048

3.2 生成证书请求文件(CSR)

使用以下命令生成一个证书请求文件(例如 server.csr):

Markup 全选
openssl req -new -key private.key -out server.csr

Harbor部署

3.3生成自签名证书

使用以下命令生成自签名证书(例如 server.crt)

Markup 全选
openssl x509 -req -days 365 -in server.csr -signkey private.key -out server.crt

生成一个有效期为365天的自签名证书,它将使用私钥文件来签名证书请求文件。

注意,可以根据需要调整证书的有效期 -days 参数。

四、配置 Harbor (harbor.yml)

进入harbar解压目录

Markup 全选
cd /root/harbor

复制harbor.yml.tmpl 名称为 harbor.yml

Markup 全选
cp harbor.yml.tmpl harbor.yml

hostname: 设置 Harbor 的访问地址(域名或 IP)。客户端将使用此地址访问 Harbor。务必确保客户端能解析此地址。

Markup 全选
hostname: 192.168.10.253

http / https: 配置访问协议。默认启用 HTTPS,启用 HTTP(默认端口 80)。,如果暂时不配置 HTTPS 证书,需要注释掉 https 部分

我们这里使用上一步生成的证书

Markup 全选
# 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: /opt/harbor/ssl/server.crt
  private_key: /opt/harbor/ssl/private.key

harbor_admin_password: 设置 Harbor 初始 admin 用户的密码。务必修改为强密码。

Markup 全选
harbor_admin_password: Harbor12345

data_volume: 指定 Harbor 持久化数据的存储路径,使用之前创建的目录。

Markup 全选
# The default data volume
data_volume: /opt/harbor/data

其他配置项可根据需要调整(如数据库、日志、扫描器等)。

五、安装Harbor

执行安装脚本。Harbor 使用 Docker Compose 进行编排。

Markup 全选
./install.sh --with-trivy

安装脚本会执行以下操作:

检查 Docker 和 Docker Compose 环境。

加载 Harbor 所需的 Docker 镜像到本地。

根据 harbor.yml 生成 Docker Compose 配置文件 (docker-compose.yml) 和相关服务的配置文件。

使用 docker-compose up -d 启动所有 Harbor 服务容器。

一共5个步骤,如图所示

Harbor部署

Harbor部署

六、设置防火墙

Markup 全选
# 放行80端口
sudo firewall-cmd --permanent --add-port=80/tcp
# 放行443端口
sudo firewall-cmd --permanent --add-port=443/tcp
# 重载防火墙规则
sudo firewall-cmd --reload
# 查看防火墙放行端口
sudo firewall-cmd --list-ports

七、访问Harbor Web UI

安装成功后,通过浏览器访问配置的hostname(例如192.168.10.253,取决于你的 hostname配置和网络解析)。

用户名:admin

密码: 你在 harbor.yml 中设置的 harbor_admin_password

登录后,你会看到 Harbor 的管理界面。

八、推送镜像到Harbor

配置Docker客户端信任

编辑 /etc/docker/daemon.json

Markup 全选
{
  "insecure-registries": ["https://192.168.10.253"]
}

保存后重启 Docker 服务:

Markup 全选
sudo systemctl restart docker

登录docker

C# 全选
docker login --username=admin --password=*** https://192.168.10.253

Harbor部署

设置镜像的tag并推送

C# 全选
# 设置镜像 tag
docker tag nginx-ui5-build:1.77.6 192.168.10.253/library/nginx-ui5-build:1.77.6
# 推送到服务器
docker push 192.168.10.253/library/nginx-ui5-build:1.77.6

Harbor部署

 

 

 

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:CentOS 磁盘扩容
下一篇:CentOS安装squid代理。用于代理转发微信,钉钉接口。解决IP白名单问题
评论列表

发表评论

评论内容
昵称:
关联文章

Docker 私有镜像仓库 Harbor部署
Docker 私有镜像仓库 一:Docker Registry
C# .net项目Docker方式部署
CentOS7 Docker设置国内镜像加速器
.NET 微服务——CI/CD(3):镜像自动分发
CentOS7安装Docker
使用.NET 6开发TodoList应用(30)——实现Docker打包和部署
如何从Gitblit服务器恢复Git仓库:不需要重新部署
CentOS Docker命令集合
docker安装mysql
JAVA环境部署
.NET 微服务——CI/CD(2):自动打包镜像
NPM淘宝镜像
Nginx部署
Docker安装JIRA 7.2.2
git批量克隆仓库代码以及批量上传
Docker安装Redis
CentOS Docker中安装gitea
CentOS Docker中安装gitlab
window server部署open VPN

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码