Harbor 私有仓库构建
一、Harbor 介绍
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能
二、环境准备
1.硬件
资源 | 最低 | 推荐 |
---|---|---|
中央处理器 | 2核 | 4核 |
内存 | 4GB | 8GB |
粗盘 | 40GB | 160GB |
2.软件
关键 | 版本 | 描述 |
---|---|---|
Docker engine | 17.06.0-ce+以上 | https://docs.docker.com/engine/install/ |
Docker Compose | 1.18.0以上 | https://docs.docker.com/compose/install/ |
Openssl | 最新的优先 | 用于为Harbor生成证书和密钥 |
3.网络端口
Harbor要求在目标主机上打开以下端口
端口 | 协议 | 说明 |
---|---|---|
443 | HTTPS | Harbor和核心API接受此端口上的请求。可以在配置文件中更改此端口 |
4443 | HTTPS | 连接到 Harbor 的 Docker Content Trust 服务。仅在启用 Notary 时才需要。您可以在配置文件中更改此端口。 |
80 | HTTP | Harbor和核心API接受此端口上的请求。可以在配置文件中更改此端口 |
三、下载Harbor安装程序
1.打开下载页面
https://github.com/goharbor/harbor/releases
2.选择离线安装或者在线安装
3.使用tar提取安装包
1 | bash $ tar xzvf harbor-offline-installer-version.tgz |
四、配置HTTPS访问Harbor
1.准备HTTPS证书
yourdomain.com.crt
yourdomain.com.key
2.向Harbor和Docker提供证书
将服务器证书和密钥复制到 Harbor 主机上的 certficates 文件夹中。
1
2cp yourdomain.com.crt /data/cert/
cp yourdomain.com.key /data/cert/转换
yourdomain.com.crt
为yourdomain.com.cert
,供 Docker 使用。
Docker 守护进程将.crt
文件解释为 CA 证书,将.cert
文件解释为客户端证书。1
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
重启Docker引擎
1
systemctl restart docker
3.配置Harbor YML文件
在harbor的安装目录下找到
harbor.yml.tmpl
并复制一份1
cp harbor.yml.tmpl harbor.ymls
配置主机名
1
2
3# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: yourdomain.com
配置HTTPS的证书
1
2
3
4
5
6https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /var/lib/sse/keys/yourdomain.com.crt
private_key: /var/lib/sse/keys/yourdomain.com.key配置镜像数据存放地址
1
2# The default data volume
data_volume: /var/lib/sse/data指定管理员密码
1
2
3
4# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor12345
4.部署或重新配置Harbor
运行
prepare
脚本以启用 HTTPS。Harbor 使用一个
nginx
实例作为所有服务的反向代理。您可以使用prepare
脚本进行配置nginx
以使用 HTTPS。该prepare
在Harbor的安装包,在同级别的install.sh
脚本。1
2./prepare
./install.sh如果 Harbor 正在运行,请停止并删除现有实例。
您的镜像数据保留在文件系统中,因此不会丢失任何数据。
1
docker-compose down -v
重启 Harbor
1
docker-compose up -d
五、测试访问
1 | https://yourdomain.com |