https://github.com/goharbor/harbor/releases
# docker-compose安装
https://abc.htmltoo.com/thread-45046.htm
cd /data/docker
wget https://github.com/goharbor/harbor/releases/download/v2.2.1/harbor-offline-installer-v2.2.1.tgz
tar xvf harbor-offline-installer-v2.2.1.tgz
cd harbor && cp harbor.yml.tmpl harbor.yml
#配置ssl
mkdir cert && cd cert
openssl req -sha256 -x509 -days 365 -nodes -newkey rsa:4096 -keyout hub.qq.com.key -out hub.qq.com.crt
vim /data/docker/harbor/harbor.yml
# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost,此处我设置为本地ip
hostname = hub.htmltoo.com
# Harbor启动后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = Wdq54321
# 默认端口90
port: 5200
# 数据位置
data_volume: /data/docker/harbor/data
---https
hostname = harbor.example.com
ui_url_protocol = https
ssl_cert = /data/docker/harbor/cert/harbor.example.com.crt
ssl_cert_key = /data/docker/harbor/cert/harbor.example.com.key
chmod -R 777 /data/docker/
./install.sh
http://hub.htmltoo.com:5200 输入用户名admim(已修改密码)
# 登陆admin凭证密码
cat ~/registry-5000.md | docker login hub.htmltoo.com:5200 --username admin --password-stdin
docker commit -m="update" -a="htmltoo.com" 63629f98a64d hub.htmltoo.com:5200/htmltoo/nginx
docker image
docker tag 98d4ff00ea5f hub.htmltoo.com:5200/htmltoo/nginx
docker pull hub.htmltoo.com:5200/htmltoo/nginx
# Harbor在架构上主要由6个组件构成:
Proxy:Harbor的registry, UI, token等服务,通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务。
Registry: 负责储存Docker镜像,并处理docker push/pull 命令。由于我们要对用户进行访问控制,即不同用户对Docker image有不同的读写权限,Registry会指向一个token服务,强制用户的每次docker pull/push请求都要携带一个合法的token, Registry会通过公钥对token 进行解密验证。
Core services: 这是Harbor的核心功能,主要提供以下服务:
UI:提供图形化界面,帮助用户管理registry上的镜像(image), 并对用户进行授权。
webhook:为了及时获取registry 上image状态变化的情况, 在Registry上配置webhook,把状态变化传递给UI模块。
token 服务:负责根据用户权限给每个docker push/pull命令签发token. Docker 客户端向Regiøstry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求。
Database:为core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据。
Job Services:提供镜像远程复制功能,可以把本地镜像同步到其他Harbor实例中。
Log collector:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。
# 编译
cd /data/harbor-master
sed -i 's/amd64/arm64/' /data/harbor-master/tools/swagger/Dockerfile
docker pull golang:latest
make package_offline GOBUILDIMAGE=golang:latest COMPILETAG=compile_golangimage
vim /data/harbor-master/tools/swagger/Dockerfile
FROM golang:latest
ARG SWAGGER_VERSION
RUN curl -fsSL -o /usr/bin/swagger https://github.com/go-swagger/go-swagger/releases/download/$SWAGGER_VERSION/swagger_linux_amd64 && chmod +x /usr/bin/swagger
ENTRYPOINT ["/usr/bin/swagger"]
CMD ["--help"]
# harbor-arm64 编译
https://github.com/cabbageGG/harbor-arm64
make package_offline -e VERSIONTAG=v1.9.3 PKGVERSIONTAG=v1.9.3 UIVERSIONTAG=v1.9.3 DEVFLAG=false CLAIRFLAG=true
https://github.com/zhanglu0704/harbor-arm64/tree/develop
https://blog.csdn.net/weixin_42758707/article/details/105757464
https://blog.csdn.net/QianLiStudent/article/details/109223643