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

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

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

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

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

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=https://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=60s
[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

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


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
高效部署!使用Docker Compose快速搭建Harbor私有镜像仓库


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

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

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

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

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

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

高效部署!使用Docker Compose快速搭建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. 打开浏览器输入地址就可以登录管理页面啦;

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

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



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

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

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

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


4.  浏览器输入https验证

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


MUSIC

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

♬..♩~ ♫. ♪..

END


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

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

Zabbix | Kubernetes核心组件证书监控

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

原文始发于微信公众号(Linux运维之旅):高效部署!使用Docker Compose快速搭建Harbor私有镜像仓库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/273725.html

(0)
明月予我的头像明月予我bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!