高效部署!使用Docker Compose快速搭建Harbor私有镜像仓库

三奇 关注

收藏于 : 2024-04-10 23:16   被转藏 : 1   

01

前言

在现代云原生技术领域, 容器化已经成为实现应用快速部署、扩展和管理的主流方式 。Docker作为容器生态中的核心力量,其镜像仓库的重要性不言而喻。Harbor作为一款由VMware公司开源的企业级Docker Registry项目,以其丰富的功能特性、高度可定制性和对安全性的重视,在全球范围内广受企业和开发者的青睐。

本文旨在带领大家 深入浅出地了解并掌握如何从零开始部署一套高效稳定的Harbor私有Registry服务,并通过配置ssl,实现HTTPS加密传输,确保镜像数据的安全性与分发效率。

02

搭建部署

本文采用的是docker-compose来部署harbor,为什么选择docker-compose? 它有什么好处?


首先,Harbor作为一个企业级的Docker Registry,其自身包含了多种组件,如前端界面、后端存储、缓存服务等,这些组件之间存在复杂的依赖关系,使用docker-compose可以 轻松解决服务之间的依赖关系,确保各个服务按照预期顺序启动,并且能够自动处理网络连接、端口映射等问题


其次, 可以 进行 一键启停操作 ,通过docker-compose up或docker-compose down命令,运维人员可以轻松的启动和停止整个harbor环境,而且部署难度底,这对于运 维人员前期部署和后期维护,无疑是大大提供了高效便捷


最后docker-cpmose支持灵活扩展,当需要调整Harbor的架构或增加新功能时,可以直接修改docker-compose.yml文件来添加或删除服务实例,适应不同的负载需求。


综上所述,采用docker-compose部署Harbor有助于降低部署复杂度、提高效率,使得整个系统易于管理和维护,同时也符合现代DevOps实践中提倡的基础设施即代码的理念。


1. 进入官网下载部署包,包含docker(已经安装了,可以不用下载)、docker-compose和harbor,其中harbor有在线包和离线包,可以联网的可以下载在线包,本文选择的是离线安装。
harbor下载地址 https://github.com/goharbor/harbor/releases
docker下载地址 https://download.docker.com/linux/static/stable/x86_64/
docker-compose下载地址 https://github.com/docker/compose/releases


2. 安装docker服务( 已有则无须安装 ),解压docker包,把里面的可执行的二进制文件复制到/usr/bin/下,然后配置启动服务并添加可执行的权限,最后启动服务即可。
                    
                      # tar -xf docker-
                      
                        24.0
                      
                      .
                      
                        2
                      
                      .tgz
                      
# cp  docker/* /usr/bin/

# cat  > /usr/lib/systemd/ system /docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=http s: //docs.docker. com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
#TasksMax=infinity
TimeoutStartSec= 0
Delegate=yes
KillMode=process
Restart=onfailure
StartLimitBurst= 3
StartLimitInterval= 60 s
[Install]
WantedBy=multi-user.target
EOF

# chmod + x  /usr/lib/systemd/ system /docker.service

# systemctl daemon-reload
# systemctl start docker
# systemctl enable docker
# systemctl status docker


3.  部署docker-compose服务,重命名文件名称并复制到/usr/local/bin/下
                    
   
   
   
# mv docker-compose-linux-x86_64 docker-compose
# cp  docker-compose /usr/local/bin/
#
# chmod + x   /usr/local/bin/docker-compose
# docker-compose -- version
Docker Compose version  v2. 24.2


4. 部署harbor镜像仓库,解压部署包,修改harbor.yml文件,设置登陆的ip地址、登陆端口和登陆密码等信息,然后执行安装脚本
                    
                      # tar -xf harbor-offline-installer-v2.
                      
                        10.0
                      
                      .tgz
                      
# cp  harbor.yml.tmpl harbor.yml
# vim  harbor.yaml

                    
                      # 
                      
                        ls
                      
                       
                      
common common. sh   docker-compose.yml harbor.v2. 10.0 .tar.gz harbor.yml harbor.yml.tmpl install. sh   LICENSE prepare
# ./install. sh

备注:常用的启停命令(须进到harbor目录下执行)

                    
                      # docker-compose 
                      
                        up
                      
                       -d #在后台启动所有服务
                      
# docker-compose build #在运行项目前先构建项目所需镜像
# docker-compose ps       #列出本地docker-compose.yml文件里定义的正在运行的所有服务
# docker-compose stop     #停止所有服务,如果服务没有停止,可以使用docker-compose kill强制杀死服务
# docker-compose start #开启所有服务
# docker-compose rm #删除所有服务

4. 打开浏览器输入地址就可以登录管理页面啦;



03

配置SSL认证

为了提供Harbor镜像仓库的系统安全性, 避免Harbor与客户端在进行敏感数据传输时被窃取或篡改 ,下面对harbor进行ssl认证配置。


1. 生成证书颁布机构证书

                    
                      
                        1
                      
                      )生成私钥 
                      
# mkdir  /usr/local/src/pack/harbor/ssl
# cd  ssl
# openssl genrsa -out ca .key 4096

2 )生成CA证书
# openssl req -x509 - new  -nodes -sha512 -days 3650  \
> -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=192.168.88.134"  \
> -key ca .key \
> -out ca .crt

2. 生成服务器证书

                    
                      
                        1
                      
                      )生成私钥
                      
# openssl genrsa -out 192.168 . 88.134 .key 4096

2 )生成证书签名请求(CSR)
# openssl req -sha512 - new  \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain.com"  \
 -key 192.168 . 88.134 .key \
 -out 192.168 . 88.134 .csr

3 )生成一个x509 v3扩展名文件
# cat  > v3.ext <<-EOF
 authorityKeyIdentifier=keyid,issuer
 basicConstraints=CA:FALSE
 keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
 extendedKeyUsage = serverAuth
 subjectAltName = @alt_names
 [alt_names]
 DNS. 1 = 192.168 . 88.134
EOF

4 )使用v3.ext文件为您的Harbor主机生成证书
# openssl x509 -req -sha512 -days 3650  \
 -extfile v3.ext \
 -CA ca .crt -CAkey ca .key -CAcreateserial \
 -in 192.168 . 88.134 .csr \
 -out 192.168 . 88.134 .crt

5 ) 将domain. com .crt转换为domain. com .cert,供Docker使用。
# mkdir  /usr/local/src/pack/harbor/cert
# cp  ./ssl/ 192.168 . 88.134 .crt ./ssl/ 192.168 . 88.134 .key cert/
# openssl x509 -inform PEM -in 192.168 . 88.134 .crt -out 192.168 . 88.134 .cert

3. 修改harbor的配置文件

                    

# vim  harbor.yml

                    

# ./prepare
# docker-compose down -v
# docker-compose up  -d


4.  浏览器输入https验证


MUSIC

♬..♩~ ♫. ♪..

END


超实用!利用Nginx实现文件下载,效率翻倍

Zabbix | Kubernetes核心组件证书监控

太牛了!利用Python结合Ansible制作系统主机巡检报表

 阅读文章全部内容  
点击查看
文章点评
相关文章
三奇 关注

文章收藏:2230

TA的最新收藏