Docker私有仓库Harbor-v1.10.1 Https Ip方式访问的安装配置
一、简介
Harbor是由VMware公司开源的企业级的Docker Registry管理项目,用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。
Harbor官方网站 https://goharbor.io/
Harbor项目开源地址 https://github.com/goharbor/harbor
Harbor被部署为多个Docker容器。因此,您可以将其部署在任何支持Docker的Linux发行版上。目标主机需要Docker和Docker Compose才能安装。
二、环境准备
1、硬件需求
下表列出了用于部署Harbor的最低和建议的硬件配置。
Resource | Minimum | Recommended |
---|---|---|
CPU | 2 CPU | 4 CPU |
Mem | 4 GB | 8 GB |
Disk | 40 GB | 160 GB |
2、软件需求
下表列出了必须在目标主机上安装的软件版本。
Software | Version | Description |
---|---|---|
Docker engine | Version 17.06.0-ce+ or higher | For installation instructions, see Docker Engine documentation |
Docker Compose | Version 1.18.0 or higher | For installation instructions, see Docker Compose documentation |
Openssl | Latest is preferred | Used to generate certificate and keys for Harbor |
3、网络端口
Port | Protocol | Description |
---|---|---|
443 | HTTPS | Harbor portal and core API accept HTTPS requests on this port. You can change this port in the configuration file. |
4443 | HTTPS | Connections to the Docker Content Trust service for Harbor. Only required if Notary is enabled. You can change this port in the configuration file. |
80 | HTTP | Harbor portal and core API accept HTTP requests on this port. You can change this port in the configuration file. |
4、安装方式
从官方发布git仓库页面下载Harbor安装程序 。
下载联机安装程序或脱机安装程序。
在线安装包:https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-online-installer-v1.10.1.tgz
离线安装包:https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz
离线安装包百度云:
链接:https://pan.baidu.com/s/1JkiJoU2PQVMN-uhX0BWTsw 提取码:w55i
三、安装部署
本文采用离线方式安装
1、安装docker docker-compose
wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install epel-release -y yum install docker-ce -y yum install docker-compose -y systemctl start docker &&systemctl enbale docker && systemctl status docker
查看docker版本和docker-compose版本
[root@hub2 /]# docker info Client: Debug Mode: false Server: Containers: 11 Running: 11 Paused: 0 Stopped: 0 Images: 103 Server Version: 19.03.1 [root@hub2 /]# docker-compose -v docker-compose version 1.18.0, build 8dd22a9
2、下载离线安装包并解压
#官方镜像下载,服务器在国外,速度较慢 wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz #解压缩 tar xvf harbor-offline-installer-v1.10.1.tgz #查看 [root@hub2 ~]# tree harbor harbor ├── common │ └── config │ ├── core │ │ ├── app.conf │ │ ├── certificates │ │ └── env │ ├── db │ │ └── env │ ├── jobservice │ │ ├── config.yml │ │ └── env │ ├── log │ │ ├── logrotate.conf │ │ └── rsyslog_docker.conf │ ├── nginx │ │ ├── conf.d │ │ └── nginx.conf │ ├── registry │ │ ├── config.yml │ │ └── root.crt │ └── registryctl │ ├── config.yml │ └── env ├── common.sh ├── docker-compose.yml ├── harbor.v1.10.1.tar.gz ├── harbor.yml #配置文件 ├── install.sh ├── LICENSE └── prepare
3、配置对Harbor的HTTPS访问
注:如果不使用https方式可以跳过此步骤,直接修改文件后部署,使用http方式在部署后需要在docker上添加为信任节点
vim /etc/docker/daemon.json { "insecure-registries" : ["192.168.21.210:5000"] #私有仓库地址 }3.1生成证书颁发机构证书
生成CA证书私钥。
openssl genrsa -out ca.key 4096
生成CA证书。
#修改 yourdomain.com 为你的domain或者IP地址 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.crt3.2生成服务器证书
证书通常包含一个.crt文件和一个.key文件,例如yourdomain.com.crt和yourdomain.com.key。
- 生成私钥
openssl genrsa -out yourdomain.com.key 4096
- 生成证书签名请求(CSR)
调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为公用名(CN)属性,并在密钥和CSR文件名中使用它。
#使用域名或者Ip地址替换命令中的"CN=yourdomain.com",域名需替换 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
#使用ip直接访问方式修改模板x.x.x.x替换为你要设置的ip cat > v3.ext <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = IP:x.x.x.x EOF
注:使用域名访问方式,直接修改官方模板中的DNS.1 DNS.2 ...
- 使用该v3.ext文件为您的Harbor主机生成证书。
#将yourdomain.comCRS和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.crt3.3提供证书给Harbor和Docker
mkdir -p /data/cert/ cp yourdomain.com.crt /data/cert/ cp yourdomain.com.key /data/cert/3.4 docker客户端证书文件转换
转换yourdomain.com.crt为yourdomain.com.cert,供Docker使用。
Docker守护程序将.crt文件解释为CA证书,并将.cert文件解释为客户端证书。
openssl x509 -inform PEM -in yourdomain.com.crt -out yourdomain.com.cert3.5服务器证书拷贝
将服务器证书,密钥和CA文件复制到Harbor主机上的Docker certificate文件夹中。您必须首先创建适当的文件夹。
mkdir -p /etc/docker/certs.d/yourdomain.com/ 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。
以下示例说明了使用自定义证书的配置。
/etc/docker/certs.d/ └── yourdomain.com:port ├── yourdomain.com.cert <-- Server certificate signed by CA ├── yourdomain.com.key <-- Server key signed by CA └── ca.crt <-- Certificate authority that signed the registry certificate
4、修改配置文件harbor.yml
配置文件说明详情见官方文档:
vim /harbor/harbor.yml hostname: #Ip或者域名 ... # 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 #证书文件路径 ... harbor_admin_password: Harbor12345 #admin管理员密码此为初始密码
5、部署或重新配置harbor
5.1运行prepare脚本以启用HTTPS。Harbor将nginx实例用作所有服务的反向代理。您可以使用prepare脚本来配置nginx为使用HTTPS。
./prepare5.2如果Harbor正在运行,请停止并删除现有实例,镜像数据保留在文件系统中,不会丢失任何数据。
docker-compose down -v5.3重启harbor:
docker-compose up -d
四、验证HTTPS连接
为Harbor设置HTTPS之后,您可以通过执行以下步骤来验证HTTPS连接。
1、浏览器验证
打开浏览器,然后输入https://yourdomain.com。它应该显示Harbor界面。
某些浏览器可能会显示警告,指出证书颁发机构(CA)未知。使用不是来自受信任的第三方CA的自签名CA时,会发生这种情况。您可以将CA导入浏览器以删除警告。
在运行Docker守护程序的机器上,检查/etc/docker/daemon.json文件以确保-insecure-registry未为https://yourdomain.com设置该选项。
2、Docker客户端验证
从Docker登录Harbor。
docker login yourdomain.com
如果已将nginx443端口映射到其他端口,请在login命令中添加该端口。
docker login yourdomain.com:port
- 一文搞定docker创建私有镜像仓库(配置启动http和https方式私有仓库服务,查询、删除私有仓库镜像)
- Docker(四)私有仓库Harbor安装和配置
- 小白学docker(2)---docker安装私有仓库docker harbor
- 在linux安装配置svn并实现支持ssl认证https安全访问方式
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
- docker 镜像仓库Harbor https访问
- 企业级私有registry Harbor通过https访问的详细配置
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证的私有仓库
- Docker Registry Server 搭建,配置免费HTTPS证书,及拥有权限认证、TLS 的私有仓库
- 配置Docker beta for Mac访问私有镜像仓库
- docker安装nginx并配置通过https访问【阿里云证书申请】
- ubuntu 14.04 https 形式安装docker 私有库 harbor
- 在yum 安装(docker方式安装)的redis 配置认证密码 和 限定IP登录
- 私有仓库harbor安装包括https
- 【docker安装与配置】docker安装与私有仓库安装
- Docker镜像仓库Harbor安装与配置
- docker深入1-配置非https的公司私有的registry仓库
- ubuntu 14.04/16.04 https 形式安装docker 私有库 harbor
- Centos6.5服务器环境搭建之安装Nginx以及Https访问方式的配置
- docker安装nginx并配置通过https访问的方法