Harbor 私有镜像仓库搭建(可用于 gitlab CI/CD)
安装
下载安装包,可以在“Harbor Releases”查看更多版本
wget https://github.com/goharbor/harbor/releases/download/v2.15.0-rc3/harbor-offline-installer-v2.15.0-rc3.tgz解压缩
tar -zxvf harbor-offline-installer-v2.15.0-rc3.tgz && rm -f harbor-offline-installer-v2.15.0-rc3.tgz配置 harbor,编辑
harbor.ymlcd harbor && cp harbor.yml.tmpl harbor.yml vi harbor.yml
搜索
http related config并将端口号修改为一个不被占用的端口,例如:8080# http related config http: port: 8080搜索
https related config并将对应的https、port、certificate、private_key注释掉# https related config # https: # port: 5443 # certificate: /your/certificate/path # private_key: /your/private/key/path- 修改配置中的
harbor_admin_password,这是默认账户admin的登陆密码(这个账户也可以用来 push 和 pull)
配置 docker,编辑
/etc/docker/daemon.json增加下面这行"insecure-registries": ["docker.kyzy.cc:8080", "127.0.0.1:8080"]注意:每一个需要访问似有库存的机器上都需要进行这个配置
配置域名
编辑 nginx 配置,设置代理转发(端口
8080要与上面harbor.yml配置的 http 端口保持一致)proxy_pass http://127.0.0.1:8080;如需 https 方式访问可以参考《Let's Encrypt的https证书申请及安装(nginx)》,不要使用 CloudFlare 的证书,因为他们的 CDN 对于每个请求(
request body)的大小有限制,一旦超出就会中断传输,在镜像上传、下载过程中很容易超出限制,若请求超过限制,Cloudflare 将返回 413 Request Entity Too Large 错误。
关于 CloudFlare 请求大小限制如下:- Free / Pro 计划:最大 100 MB
- Business 计划:最大 200 MB
- Enterprise 计划:默认 500 MB
访问
此时可以使用
ip:端口(8080)来进行访问了,如果配置了 https,则访问的时候不需要带端口号 8080 了,但是其他的行为,例如:docker login / tag / push / pull依然需要带这个端口,如下:# 登录私有镜像仓库 docker login https://docker.mydomain.com:8080 # 构建镜像 -t 代表镜像名称, . 代表了`Dockerfile`位置) docker build -t my-app:v1.0 . # 为镜像标记 TAG docker tag my-app:v1.0 docker.mydomain.com:8080/test/my-app:v1.0 # 将镜像推送到远程私有镜像仓库 docker push docker.mydomain.com:8080/test/my-app:v1.0 # 拉取远程私有镜像仓库中的镜像 docker pull docker.mydomain.com:8080/test/my-app@sha256:xxx
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭