2024-07-07
Docker
00
请注意,本文编写于 75 天前,最后修改于 75 天前,其中某些信息可能已经过时。

目录

Harbor 介绍
安装步骤
1. 下载与解压
2. 配置HTTPS
3. 生成 CA 证书私钥与证书(HTTP可忽略)
4. 运行安装脚本
5. 配置Docker守护进程
6. 推送镜像到 Harbor
7、Harbor安装在Windows的缺点

Harbor 介绍

Harbor是一款深受信赖的容器镜像管理平台。若欲部署Harbor,需先从GitHub下载指定版本的安装包。默认情况下,Harbor不附带证书,可在无外部网络连接的开发或生产环境中使用HTTP,但在生产环境应始终使用HTTPS以保障安全。

安装步骤

1. 下载与解压

GitHub上下载指定版本的安装包

bash
#下载 wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz # 解压缩 tar -zxf harbor-offline-installer-v2.10.3.tgz # 复制配置文件 cp harbor.yml.tmpl harbor.yml

2. 配置HTTPS

默认情况下,Harbor 不附带证书。可以在没有安全性的情况下部署 Harbor。但是,只有在没有连接到外部 Internet 的生产或开发环境中,才可以使用 HTTP。在非生产环境中使用 HTTP 会使您面临攻击。在生产环境中,请始终使用 HTTPS。 要配置 HTTPS,必须创建 SSL 证书。可以使用由受信任的第三方 CA 签名的证书,也可以使用自签名证书。 接下来使用 OpenSSL 创建 CA,以及如何使用 CA 对服务器证书和客户端证书进行签名。也可以使用其他 CA 提供程序,例如 Let's Encrypt。

1. 以下操作在开发环境可忽略

若不配置证书,需注释https,调整域名

bash
hostname: 192.168.0.158 # 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: /your/certificate/path #private_key: /your/private/key/path

3. 生成 CA 证书私钥与证书(HTTP可忽略)

参考链接

bash
openssl genrsa -out ca.key 4096 # 生成 CA 证书 openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=<domain.com>" \ -key ca.key \ -out ca.crt

4. 运行安装脚本

bash
./prepare # 启动Harbor ./install.sh

如果运行存在问题,在harbor.yml目录执行docker compose down -v,会删除现有实例,数据保存在文件系统中,并不会因此丢失任何数据。 重新运行脚本后重启Harbordocker compose up -d

5. 配置Docker守护进程

如果未启用HTTPS,需配置daemon.json中的insecure-registries

bash
vi /etc/docker/daemon.json

将宿主机IP填入insecure-registries

json
{ "registry-mirrors": [ "https://hub.docker.com", "http://192.168.0.158" ], "insecure-registries" : ["http://192.168.0.158"] }

6. 推送镜像到 Harbor

从 Docker 客户端登录 Harbor,docker login yourdomain.com 如果已将 443 端口映射到其他端口,请在命令中添加该端口。nginx login

docker login yourdomain.com:port

登录 Harbor 后,新增项目。

bash
# 登录 Harbor docker login 192.168.0.158 -u admin -p Harbor12345 # 将现有镜像打tag docker tag 7aa694114453 192.168.0.158/goharbor/harbor-exporter:v2.10.3 # 推送到Harbor docker push 192.168.0.158/goharbor/harbor-exporter:v2.10.3 # 从 Harbor 拉取,可从仓库中复制拉取镜像命令 docker pull 192.168.0.158/goharbor/harbor-exporter:v2.10.3

7、Harbor安装在Windows的缺点

一般来说也没人会这么干😅

由于 WSL 是默认安装在C盘的,后续将拉取到的镜像推送到 Harbor 时,C盘空间会持续减少。。。 当然可以将 WSL 装在其他盘,具体操作可 bing 搜索

本文作者:一叶知秋

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!