7.3 自动化构建(harbor)

系列 - 自动化构建与持续集成
Harbor简介
Harbor 是一个开源的企业级 Docker 镜像仓库服务器,用于存储和分发 Docker 镜像。它提供了基于角色的访问控制、镜像扫描、漏洞分析等企业级功能,是 Kubernetes 和 Docker 环境中常用的私有镜像仓库解决方案。

在开始安装 Harbor 之前,我们需要确保系统环境满足要求,并准备好必要的配置文件。

1、安装缺失软件包 📦

bash

yum install -y ca-certificates

2、下载安装文件 ⬇️

bash

cd /srv
wget https://static.seahi.me/2024/05/harbor-offline-installer-v2.10.2.tgz

3、解压安装文件 📂

bash

tar xvf harbor-offline-installer-v2.10.2.tgz

4、准备配置文件 ⚙️

bash

cd /srv/harbor
cp -ar harbor.yml.tmpl harbor.yml
vim harbor.yml

修改以下内容:

yaml

hostname: 192.168.192.240  # 这里配置的监听地址,换成你自己的服务器IP
port: 9000 #监听端口
data_volume: /srv/harbor/data  #配置数据仓库
配置文件修改提示
需要注释文件中关于 HTTPS 的部分,默认是13行到18行。在生产环境中,建议配置 HTTPS 以提高安全性,但在实验环境中可以先使用 HTTP。

1、安装 Harbor

bash

# 准备工作主要是下载镜像并生成配置文件
./prepare
# 安装并启动
./install.sh

安装完成

信息
Harbor 安装过程会自动拉取和启动多个 Docker 容器,包括 nginx、registry、redis 等组件。整个过程可能需要几分钟时间 ⏳,取决于你的网络和系统性能。

2、验证是否安装成功 ✅

浏览器打开 192.168.192.240:9000

警告
请将 IP 地址替换为你自己服务器的 IP 地址

看到如下登录界面,说明 Harbor 已成功部署:

登录页面

默认登录凭证

默认的用户名是:admin 👤
默认密码是:Harbor12345 🔑

首次登录后,建议立即修改默认密码以提高安全性 🔒。

现在我们来尝试使用 Docker 客户端登录到 Harbor 仓库,并进行基本操作。

1、使用 Docker 登录 Harbor 🚪

bash

docker login -u admin -p Harbor12345 192.168.192.240:9000 

登录报错

常见错误
如上图所示,首次登录时可能会遇到证书问题 ⛔。这是因为我们使用的是 HTTP 而非 HTTPS,需要在 Docker 客户端配置允许不安全的仓库。

2、修改 Docker 配置文件 🔧

bash

vim /etc/docker/daemon.json

添加以下内容:

json

{
	"insecure-registries": [
		"192.168.192.240:9000"
	]
}

文件内容

3、重启 Docker 服务 🔄

bash

systemctl restart docker

4、重新登录 Harbor 🔁

bash

docker login -u admin -p Harbor12345 192.168.192.240:9000 
登录成功
成功登录后,你将看到 “Login Succeeded” 的提示信息 🎉。现在你可以开始推送和拉取镜像了。

1、标记一个本地镜像,准备推送到 Harbor 🏷️

bash

# 拉取一个测试镜像
docker pull nginx:latest

# 给镜像打标签,指向你的 Harbor 仓库
docker tag nginx:latest 192.168.192.240:9000/library/nginx:v1

2、推送镜像到 Harbor ⬆️

bash

docker push 192.168.192.240:9000/library/nginx:v1

3、从 Harbor 拉取镜像 ⬇️

bash

# 先删除本地镜像进行测试
docker rmi 192.168.192.240:9000/library/nginx:v1

# 从 Harbor 拉取镜像
docker pull 192.168.192.240:9000/library/nginx:v1
摘要

通过本实验,我们成功完成了:

  1. Harbor 私有镜像仓库的部署 ✅
  2. 配置 Docker 客户端连接 Harbor 🔗
  3. 实现镜像的推送和拉取 🔄

Harbor 作为企业级镜像仓库 🗃️,不仅提供了基本的镜像存储功能,还具备权限控制 🔐、漏洞扫描 🔍 等高级特性,是容器化环境中不可或缺的基础设施。

相关内容