Harbor安装与配置及Https(包教包会)
Harbor
文章目录
- Harbor
- 简介
- 环境准备
- Docker
- Linux系统安装Docker
- Docker-compose
- 安装
- 在线安装
- 离线安装
- 更改端口
- 启动
- 查看状态
- 使用
- 推送镜像
- 删除
- 配置harbor的https访问证书
- 生成CA证书
- 生成服务器证书
- 生成harbor仓库主机的证书
- 先创建一个v3.ext文件
- 生成harbor仓库主机的证书
- 配置和安装证书
- 配置harbor
- 配置docker
- 测试
- 通过Helm部署具有高可用性的Harbor
前言:
请不要在docker容器中安装harbor。不成功的。
请不要对域名做一些不好的事情。
希望各位成功!
简介
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。
Habor是由VMWare公司开源的容器镜像仓库,我们就用Harbor搭建自己的镜像仓库吧。
事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
官方地址:
https://vmware.github.io/harbor/cn/
https://github.com/goharbor/harbor
https://goharbor.io/docs
组件 | 功能 |
---|---|
harbor-adminserver | 配置管理中心 |
harbor-db | Mysql数据库(新版本用PostgreSQL) |
harbor-jobservice | 负责镜像复制 |
harbor-log | 记录操作日志 |
harbor-ui | Web管理页面和API |
nginx | 前端代理,负责前端页面和镜像上传/下载转发 |
redis | 会话 |
registry | 镜像存储 |
环境准备
需要安装Docker、Docker-compose(编排工具)
Docker
Linux系统安装Docker
使用安装脚本安装
# 从get.docker.com下载安装脚本 curl -fsSL get.docker.com -o get-docker.sh
-o:在当前目录下生成一个get-docker.sh文件
# 执行安装脚本(脚本里面需要一些sudo的权限) sh get-docker.sh
查看是否安装成功
docker version
启动docker server
systemctl start docker
# 启动docker server后即会看到Server也出现了 docker version
Docker-compose
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
- 是一个工具
- 可以批量管理多个容器
官方文档
官方安装文档
# 安装方式一:apk安装
apk add docker-compose# 安装方式二:下载二进制文件安装
# apline需要一下依赖包
apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev rust cargo make# 运行以下命令下载当前稳定版本,不同版本的Compose请替换1.29.2
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 对二进制文件应用可执行权限
chmod +x /usr/local/bin/docker-compose# 卸载docker-compose
rm /usr/local/bin/docker-compose
# 启动docker-compose(这里先不用启动)
docker-compose up -d
# 查看docker-compose状态
docker-compose ps
安装
三种安装方式:
在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
离线安装:安装包包含部署的相关镜像,因此安装包比较大
OVA安装程序:当用户具有vCenter环境时,使用此安装程序,在部署OVA后启动Harbor
在线安装
离线安装
这里用的版本有点老。
查看更多版本
# wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.1.tgz
tar zxvf harbor-offline-installer-v1.5.1.tgz
cd harbor
# 配置hostname = 192.168.2.22 # 默认80端口
# 配置ui_url_protocol = http
# 配置harbor_admin_password = 123456
vi harbor.cfg
# 预生成配置文件
./prepare
# 安装
./install.sh
更改端口
不需要则不用改,这里我们改为8001端口。
因为默认是使用http访问,所以我们要修改80端口。
如果后面配置了证书使用https,就需要修改443端口了。
cd harbor
# 更改端口
vi harbor.cfg
# 配置hostname = 192.168.2.22:8001 # 默认80端口# 找到proxy下的ports
vi docker-compose.yml
docker-compose.yml文件:
启动
如果已经启动,我们改了端口,则还可以使用此命令启动。
# 启动docker-compose
docker-compose up -d
Tips:
报错:ERROR:
Can’t find a suitable configuration file in this directory or any
parent. Are you in the right directory? Supported filenames: docker-compose.yml, docker-compose.yaml, compose.yml, compose.yaml
可以跳转到harbor中进行执行就不会报错了。
查看状态
# 查看docker-compose状态
docker-compose ps
使用
直接在浏览器中访问配置hostname的地址
用户是admin
初始密码默认为Harbor12345
推送镜像
push镜像步骤:login–>tag–>push
# docker 登录
docker login 192.168.2.22:8001
# 本地镜像打tag(
docker tag mysql:5.7 192.168.2.22:8001/library/mysql:5.7
# 将镜像push到harbor中
docker push 192.168.2.22:8001/library/mysql:5.7
删除
# 移除Harbor服务容器
docker-compose down -v
配置harbor的https访问证书
生成CA证书
随便搞个什么文件夹,用于存放生成的证书。
mkdir /myData/myCerts
cd /myData/myCerts/
# 创建key文件
openssl genrsa -out ca.key 4096
# 生成证书:jenrey.xxx是我的域名
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/CN=jenrey.xxx" -key ca.key -out ca.crt
生成服务器证书
# 创建私钥
openssl genrsa -out server.key 4096
# 生成证书签名请求
openssl req -new -sha512 -subj "/CN=jenrey.xxx" -key server.key -out server.csr
生成harbor仓库主机的证书
先创建一个v3.ext文件
# 创建v3.ext文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names[alt_names]
DNS.1=www.jenrey.xxx
DNS.2=jenrey.xxx
DNS.3=jenrey
DNS.4=23.102.133.188
EOF
# 直接enter即可
生成harbor仓库主机的证书
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt# 查看证书到期时间
openssl x509 -in server.crt -noout -text
到目前为止所有需要的证书文件就生成完毕了,下面需要一些配置。
[root@hk-vm myCerts]# ll
总用量 28
-rw-r--r--. 1 root root 1789 3月 8 07:53 ca.crt
-rw-r--r--. 1 root root 3243 3月 8 07:50 ca.key
-rw-r--r--. 1 root root 17 3月 8 08:15 ca.srl
-rw-r--r--. 1 root root 1818 3月 8 08:15 server.crt
-rw-r--r--. 1 root root 1586 3月 8 07:55 server.csr
-rw-r--r--. 1 root root 3243 3月 8 07:54 server.key
-rw-r--r--. 1 root root 228 3月 8 08:14 v3.ext
[root@hk-vm myCerts]#
配置和安装证书
配置harbor
cd harbor/
# 复制一份cfg配置文件,以防出错
cp harbor.cfg harbor.cfg.tmpl
# 修改harbor的配置文件,修改以下配置项
# hostname = www.jenrey.xxx:4431
# ui_url_protocol = https
# ssl_cert = /myData/myCerts/server.crt
# ssl_cert_key = /myData/myCerts/server.key
Tips:官方文档让配置harbor.yml
文件,但是我没有这个文件,具体原因不详,但是灵机一动发现修改harbor.cfg
文件也可以实现。
# 重启以下harbor仓库
cd harbor/
# 导入配置
./prepare
# 移除Harbor服务容器,不会影响docker-compose.yml文件
docker-compose down -v
# 后台运行的harbor
docker-compose up -d
配置docker
# 不存在请mkdir创建,该目录为docker默认的固定存放证书的目录
cd /etc/docker/certs.d/
# 如果将默认nginx端口443映射到不同的端口,请创建文件夹时写上端口号
mkdir -p /etc/docker/certs.d/jenrey.xxx:4431cd /myData/myCerts
cp server.crt /etc/docker/certs.d/jenrey.xxx:4431/server.crt
测试
https://www.jenrey.xxx:4431/
通过Helm部署具有高可用性的Harbor
[https://goharbor.io/docs/2.4.0/install-config/harbor-ha-helm/](
Harbor安装与配置及Https(包教包会)相关推荐
- CentOS HarBor安装与配置
HarBor 安装与配置 Prerequisites for the target host Resource Capacity Description CPU minimal 2 CPU 4 CPU ...
- windows安装并配置apache https 网站 发布企业级iOS APP(enterprise)
1. 安装并配置apache 安裝apache時,域名和服務器名使用服務器IP,建議端口選8080(检查端口是否被占用?netstat -ano) 下载apache_2.2.8-win32-x86-o ...
- Curl安装以及配置支持HTTPS协议
一.安装openSSL 1. 下载 最新版本:https://www.openssl.org/source/ 我用的版本是 openssl-1.1.0g.tar.gz 2. 解压 执行命令:tar - ...
- Harbor安装配置
本节介绍如何执行 Harbor 的全新安装. 如果您是从先前版本的 Harbor 升级,则可能需要更新配置文件并迁移数据以适应更高版本的数据库架构.有关升级的信息,请参阅 升级 Harbor. 在安装 ...
- Harbor安装教程
一.安装docker 下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-23.0.4.tgz 1.1 解压二进制包 ...
- 手动部署OpenStack环境(二:CentOS6.6虚拟机的安装及配置)
任务二.CentOS 6.6虚拟机的安装及配置 2.1.安装环境检查 2.2.安装及配置controller0节点 2.3.安装及配置computer0节点 2.4.安装及配置network0节点 2 ...
- 手动部署OpenStack环境(一:Virtual Box 5.1 环境的安装及配置)
任务一.Virtual Box 5.1 环境的安装及配置 1.1.安装环境检查 1.2.创建安装目录 1.3.安装及配置 实验目的及要求 完成Virtual box平台安装,会应用相关操作: 在vir ...
- OpenStack环境搭建(三:Computer与Controller节点的安装及配置)
实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...
- OpenStack环境搭建(二:Fuel Master的安装及配置)
实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...
最新文章
- html局部可复制,截取网页局部区域css样式的方法和系统的制作方法
- 看新闻的时间用的太多了
- C 语言调用CPU指令,CPU 1214C中 TSEND_C指令 最多可以使用几次-工业支持中心-西门子中国...
- vantweapp中的SwipeCell踩坑
- 万物皆可Graph | 当推荐系统遇上图神经网络(四)
- 如何更流畅地使用 Google 搜索?
- python向下_如何在python中向下转换
- Atitit.sql where条件表达式的原理 attilax概括
- c语言函数 参数,C语言函数的调用与参数
- 1062. 洪水填充
- windows系统的包管理器【choco】
- 二分法和黄金分割法的区别和联系,附Python代码
- JMeter - Non HTTP response code: java.net.BindException,Non HTTP response message: Address alrea...
- 命令行登陆北邮校园网
- buuctf-misc-镜子里面的世界-wp
- 疫情裁员浪潮,如何提高面试通过率
- 学术论文常用写作结构
- 什么是锁相放大器?它的作用与功能
- 【学习记录-R】以U检验为例解释单/双侧检验
- 深度学习未来的发展点
热门文章
- 对象的调用和构造函数
- CGerberDoc* GetDocument() const; 错误
- IT菜鸟的第2天(输入输出,数据类型,运算符的使用)
- Android版-微信APP支付
- Python轻量级Web框架Flask(4)——Flask会话技术和Flask模板语言
- 云服务器传文件用什么软件,免费云主机文件传输软件推荐,大文件极速秒传
- 加州伯克利计算机科学录取,卡内基梅隆大学CMU的计算机科学SCS今年率取率是5%【女儿去了scs】...
- 实战解析 Categor 对已有类进行扩展
- linux挂载opt磁盘,centos挂载硬盘到opt
- 淘宝商品价格变化监控并自动截图网页为证