Harbor

Harbor

1 概念

Harbor是一个开源的企业级容器镜像仓库。旨在提供安全、高性能和易于管理的容器镜像存储、签名和扫描服务。Harbor扩展了开源Docker Distribution功能,增加了用户通常需要的安全性、身份和管理功能。

Harbor优势在于它专为企业级环境设计,提供合规性、性能和互操作性,特别合适在Kubernetes和Docker这样的云原生平台上进行镜像管理。

Harbor适用于需要安全、稳定和高效管理大量Docker镜像的企业,尤其是在云环境、虚拟环境或物理服务器中。它有助于企业实现镜像的集中存储管理、提高研发、测试和部署效率。最佳实践包括合理规划项目结构,利用角色基础的访问控制进行权限分配、定期进行镜像扫描和更新,以及根据需要配置高可用性部署。

2 安装docker

参考《构建Docker镜像》一文第一部分(Docker部署)

3 Harbor部署

3.1 下载

wget https://github.com/goharbor/harbor/releases/download/v2.14.1/harbor-offline-installer-v2.14.1.tgz

 3.2 部署

  • 解压
#解压文件
tar -xzvf harbor-offline-installer-v2.14.1.tgz
#将解压包移动到 /usr/local/路径下
sudo mv harbor /usr/local/
  • 修改配置文件
cp harbor.yml.tmpl harbor.yml
  • 编辑harbor.yml配置文件(hostname修改为主机IP,并设置端口号以及Harbor仓库登录密码,设置数据卷目录)

image

 image

  • 导入harbor镜像
sudo docker load < harbor.v2.14.1.tar.gz
  • 执行预安装命令
sudo ./prepare
  •  执行安装脚本
 sudo ./install.sh
  • 最后输出如下,表示部署成功。

image

 3.3 访问

http://192.168.0.91:8000/

image

 4 重新加载配置

比如,将配置文件harbor.yml中,端口由8000修改为8008。

image

 此时,需要重新执行prepare指令。

sudo ./prepare

停止现有容器

sudo docker-compose down

启动harbor

sudo docker-compose up -d

 最后,验证192.168.0.91:8008访问路径是否生效。

5 开启https访问(自签证书)

 5.1 生成CA证书

创建证书存放目录

mkdir -p /usr/local/harbor/cert
cd /usr/local/harbor/cert

创建包含SANs的证书文件(http.ext)

keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[SubjectAlternativeName]
IP.1=127.0.0.1
IP.2=192.168.0.91

生成证书

openssl req -new -newkey rsa:2048 -sha256 -nodes -out 192.168.0.91.csr -keyout 192.168.0.91.key -subj "/C=CN/ST=Shanghai/L=Shanghai/O=Super Inc./OU=Web Security/CN=192.168.0.91"
openssl x509 -req -days 3650 -in 192.168.0.91.csr -signkey 192.168.0.91.key -out 192.168.0.91.crt -extfile http.ext

配置证书

image

 重启加载配置

sudo ./prepare
sudo docker-compose down
sudo docker-compose up -d

5.2 将自签证书添加到docker信任存储

将证书下载到docker客户端,并将证书添加到Docker信任目录:

sudo mkdir -p /etc/docker/certs.d/192.168.0.91:8443
sudo cp 192.168.0.91.crt /etc/docker/certs.d/192.168.0.91:8443/
sudo chmod 644 /etc/docker/certs.d/192.168.0.91:8443/192.168.0.91.crt

同时,将自签证书添加到系统CA证书存储:

sudo cp 192.168.0.91.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

最后,重启Docker服务:

sudo systemctl restart docker

此时,可以登录仓库了:

sudo docker login -u admin -p Harbor12345  https://192.168.0.91:8443

成功登录后,输入如下图所示:

image

6 发布镜像至Harbor

  •  首先登录仓库
sudo docker login -u admin -p Harbor12345  https://192.168.0.91:8443
  • 标记镜像
sudo docker tag bsoft-mdc-newiot-aarch64:v1.0.2 192.168.0.91:8443/bsoft-mdc/bsoft-mdc-newiot-aarch64:v1.0.2
  • 推送镜像
sudo docker push  192.168.0.91:8443/bsoft-mdc/bsoft-mdc-newiot-aarch64:v1.0.2
  • 在harbor管理页面可以查到刚刚推送的镜像

image

 

posted @ 2025-11-27 09:22  钟齐峰  阅读(29)  评论(0)    收藏  举报