Docker私有仓库Harbor

阅读: 评论:0

Docker私有仓库Harbor

Docker私有仓库Harbor

一、简介
Harbor是由VMware公司开源的企业级的Docker Registry管理项目,用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。
作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。
Harbor官方网站

Harbor项目开源地址

Harbor被部署为多个Docker容器。因此,您可以将其部署在任何支持Docker的Linux发行版上。目标主机需要Docker和Docker Compose才能安装。

二、环境准备
1、硬件需求
下表列出了用于部署Harbor的最低和建议的硬件配置。

ResourceMinimum
CPU2 CPU
Mem4 GB
Disk40 GB

2、软件需求
下表列出了必须在目标主机上安装的软件版本。

SoftwareVersion
Docker engine17.06.0-ce+ or higher
Docker Compose1.18.0 or higher
OpensslLatest is preferred

3、网络端口

PortProtocol
443HTTPS
4443HTTPS
80HTTP

4、安装方式
从官方发布git仓库页面下载Harbor安装程序 。
下载联机安装程序或脱机安装程序。
在线安装包
离线安装包
离线安装包百度云提取码:w55i

三、安装部署
本文采用离线方式安装

1、安装docker docker-compose

wget -P /pos.d/ .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: falseServer:Containers: 11Running: 11Paused: 0Stopped: 0Images: 103Server Version: 19.03.1[root@hub2 /]# docker-compose -v
docker-compose version 1.18.0, build 8dd22a9

2、下载离线安装包并解压

#官方镜像下载,服务器在国外,速度较慢
wget .10.1/harbor-offline-installer-v1.
#解压缩
tar xvf harbor-offline-installer-v1. 
#查看
[root@hub2 ~]# tree harbor
harbor
├── common
│   └── config
│       ├── core
│       │   ├── f
│       │   ├── certificates
│       │   └── env
│       ├── db
│       │   └── env
│       ├── jobservice
│       │   ├── l
│       │   └── env
│       ├── log
│       │   ├── f
│       │   └── f
│       ├── nginx
│       │   ├── conf.d
│       │   └── f
│       ├── registry
│       │   ├── l
│       │   └── 
│       └── registryctl
│           ├── l
│           └── env
├── common.sh
├── l  
├── harbor.v1.10.
├── l  #配置文件
├── 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 为你的domain或者IP地址
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain" -key ca.key -

3.2生成服务器证书
证书通常包含一个.crt文件和一个.key文件,例如和yourdomain.key。
生成私钥

openssl genrsa -out yourdomain.key 4096

生成证书签名请求(CSR)
调整-subj选项中的值以反映您的组织。如果使用FQDN连接Harbor主机,则必须将其指定为公用名(CN)属性,并在密钥和CSR文件名中使用它。

#使用域名或者Ip地址替换命令中的"CN=yourdomain",域名需替换

openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain" -key yourdomain.key -out yourdomain.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
DNS.2=yourdomain
DNS.3=hostname
EOF#使用ip直接访问方式修改模板替换为你要设置的ip
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = 
EOF

注:使用域名访问方式,直接修改官方模板中的DNS.1 DNS.2 …

使用该v3.ext文件为您的Harbor主机生成证书。

#将yourdomainCRS和CRT文件名中的替换为Harbor主机名。
openssl x509 -req -sha512 -days 3650 - - -CAkey ca.key -CAcreateserial -in yourdomain.csr -

3.3提供证书给Harbor和Docker

mkdir -p /data/cert/
 /data/cert/
cp yourdomain.key /data/cert/

3.4 docker客户端证书文件转换
转换为,供Docker使用。
Docker守护程序将.crt文件解释为CA证书,并将.cert文件解释为客户端证书。

openssl x509 -inform PEM - -

3.5服务器证书拷贝
将服务器证书,密钥和CA文件复制到Harbor主机上的Docker certificate文件夹中。您必须首先创建适当的文件夹。

mkdir  -p /etc/docker/certs.d/yourdomain/
 /etc/docker/certs.d/yourdomain/
cp yourdomain.key /etc/docker/certs.d/yourdomain/
 /etc/docker/certs.d/yourdomain/

如果将默认nginx端口443 映射到其他端口,请创建文件夹/etc/docker/certs.d/yourdomain:port或/etc/docker/certs.d/harbor_IP:port。
以下示例说明了使用自定义证书的配置。

/etc/docker/certs.d/└── yourdomain:port├──   <-- Server certificate signed by CA├── yourdomain.key   <-- Server key signed by CA└── ca.crt               <-- Certificate authority that signed the registry certificate

4、修改配置文件l
配置文件说明详情见官方文档:

vim /l
hostname:      #Ip或者域名
...
# https related config
https:# https port for harbor, default is 443port: 443# The path of cert and key files for nginxcertificate: /data/    #证书文件路径private_key: /data/cert/yourdomain.key    #证书文件路径...harbor_admin_password: Harbor12345   #admin管理员密码此为初始密码

5、部署或重新配置harbor
5.1运行prepare脚本以启用HTTPS。
Harbor将nginx实例用作所有服务的反向代理。您可以使用prepare脚本来配置nginx为使用HTTPS。

./prepare

5.2如果Harbor正在运行,请停止并删除现有实例,镜像数据保留在文件系统中,不会丢失任何数据。

docker-compose down -v

5.3重启harbor:

docker-compose up -d

注:如果是第一次安装Harbor,没有启动过,这里就需要执行安装脚本而不是执行docker-compose命令了。

./install.sh

四、验证HTTPS连接
为Harbor设置HTTPS之后,您可以通过执行以下步骤来验证HTTPS连接。

1、浏览器验证
打开浏览器,然后输入。它应该显示Harbor界面。
某些浏览器可能会显示警告,指出证书颁发机构(CA)未知。使用不是来自受信任的第三方CA的自签名CA时,会发生这种情况。您可以将CA导入浏览器以删除警告。

在运行Docker守护程序的机器上,检查/etc/docker/daemon.json文件以确保-insecure-registry未为。

2、Docker客户端验证
从Docker登录Harbor。

docker login yourdomain

如果已将nginx443端口映射到其他端口,请在login命令中添加该端口。

docker login yourdomain:port

————————————————
原文链接:

本文发布于:2024-01-29 13:57:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170650783415764.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:仓库   Docker   Harbor
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23