01
—
前言
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实践中提倡的基础设施即代码的理念。

# 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
# 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

# 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制作系统主机巡检报表
原文始发于微信公众号(Linux运维之旅):高效部署!使用Docker Compose快速搭建Harbor私有镜像仓库
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/273725.html