1.安装docker
apt install docker.io
安装docker-compose
下载地址:https://github.com/docker/compose/releases
给docker-compose移动到/usr/local/bin目录下,同时赋权限a+x;
下载harbor
下载地址:https://github.com/goharbor/harbor/releases
二、
解压安装配置IP端口并启动harbor
tar -xvf harbor-online-installer-v2.5.1.tgz
cd harbor
如需要创建证书请直接下拉查看二(2)内容:
修改文件执行命令:mv haorbor.yml.tmpl harbor.yml
编辑文件:vim harbor.yml
修改 harbor.yml 中 hostname字段 配置为本机IP ,端口改成9980(避免80端口被其它程序占用)
执行命令:./install.sh,安装成功!
输入对应的IP地址加端口既可打开harbor网站!
Harbor默认用户名:admin
Harbor默认密码:Harbor12345
docker-compose up -d //启动harbor
以上就是安装harbor教程!
默认情况下,Harbor 不附带证书。可以在没有安全性的情况下部署 Harbor,以便您可以通过 HTTP 连接到它。但是,只有在没有连接到外部 Internet 的测试或开发环境中才能使用 HTTP。在非内部环境中使用 HTTP 会使您面临中间人攻击。在生产环境中,始终使用 HTTPS。如果您启用 Content Trust with Notary 以正确签署所有图像,则必须使用 HTTPS。
要配置 HTTPS,您必须创建 SSL 证书。您可以使用由受信任的第三方 CA 签名的证书,也可以使用自签名证书。下面介绍如何使用 OpenSSL创建 CA,以及如何使用您的 CA 签署服务器证书和客户端证书。您可以使用其他 CA 提供程序,例如 Let's Encrypt。
下面的过程假设您的 Harbor 注册中心的主机名是yourdomain.com
,并且它的 DNS 记录指向您正在运行 Harbor 的主机。
在生产环境中,您应该从 CA 获得证书。在测试或开发环境中,您可以生成自己的 CA。要生成 CA 证书,请运行以下命令。
生成 CA 证书私钥。
openssl genrsa -out ca.key 4096
生成 CA 证书。
调整-subj
选项中的值以反映您的组织。如果您使用 FQDN 连接您的 Harbor 主机,则必须将其指定为公用名 ( CN
) 属性。
- openssl req -x509 -new -nodes -sha512 -days 3650 \
- -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
- -key ca.key \
- -out ca.crt
证书通常包含一个.crt
文件和一个.key
文件,例如,yourdomain.com.crt
和yourdomain.com.key
.
生成私钥。
openssl genrsa -out yourdomain.com.key 4096
生成证书签名请求 (CSR)。
调整-subj
选项中的值以反映您的组织。如果您使用 FQDN 连接您的 Harbor 主机,则必须将其指定为公用名称 ( CN
) 属性并在密钥和 CSR 文件名中使用它。
- openssl req -sha512 -new \
- -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com" \
- -key yourdomain.com.key \
- -out yourdomain.com.csr
生成 x509 v3 扩展文件。
无论您是使用 FQDN 还是 IP 地址连接到您的 Harbor 主机,您都必须创建此文件,以便为您的 Harbor 主机生成符合主题备用名称 (SAN) 和 x509 v3 的证书扩展要求。替换DNS
条目以反映您的域。
- cat > v3.ext <<-EOF
- authorityKeyIdentifier=keyid,issuer
- basicConstraints=CA:FALSE
- keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
- extendedKeyUsage = serverAuth
- subjectAltName = @alt_names
- [alt_names]
- DNS.1=yourdomain.com
- DNS.2=yourdomain
- DNS.3=hostname
- EOF
使用该v3.ext
文件为您的 Harbor 主机生成证书。
将yourdomain.com
CRS 和 CRT 文件名中的 替换为 Harbor 主机名。
- openssl x509 -req -sha512 -days 3650 \
- -extfile v3.ext \
- -CA ca.crt -CAkey ca.key -CAcreateserial \
- -in yourdomain.com.csr \
- -out yourdomain.com.crt
生成 、 和 文件后ca.crt
,yourdomain.com.crt
您yourdomain.com.key
必须将它们提供给 Harbor 和 Docker,并重新配置 Harbor 以使用它们。
将服务器证书和密钥复制到 Harbor 主机上的 certficates 文件夹中。
- cp yourdomain.com.crt /data/cert/
- cp yourdomain.com.key /data/cert/
修改文件执行命令:mv harbor.yml.tmpl harbor.yml
编辑文件:vim harbor.yml
修改 harbor.yml 中 hostname字段 配置为yourdomain.com
,听见证书文件所在路径,端口默认;
- # Configuration file of Harbor
-
- # 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
-
- # 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: /data/cert/yourdomain.com.crt
- private_key: /data/cert/yourdomain.com.key
-
- # # Uncomment following will enable tls communication between all harbor components
- # internal_tls:
- # # set enabled to true means internal tls is enabled
- # enabled: true
- # # put your cert and key files on dir
- # dir: /etc/harbor/tls/internal
-
执行命令:./install.sh,安装成功!
配置本地hosts,将yourdomain.com添加进去,浏览器直接访问既可;
转换yourdomain.com.crt
为yourdomain.com.cert
, 供 Docker 使用。
Docker 守护进程将.crt
文件解释为 CA 证书,将.cert
文件解释为客户端证书。
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert
将服务器证书、密钥和 CA 文件复制到 Harbor 主机上的 Docker 证书文件夹中。您必须先创建适当的文件夹。
- cp yourdomain.com.cert /etc/docker/certs.d/yourdomain.com/
- cp yourdomain.com.key /etc/docker/certs.d/yourdomain.com/
- cp ca.crt /etc/docker/certs.d/yourdomain.com/
如果您将默认nginx
端口 443 映射到不同的端口,请创建文件夹/etc/docker/certs.d/yourdomain.com:port
或/etc/docker/certs.d/harbor_IP:port
.
重启 Docker 引擎。
systemctl restart docker