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(包教包会)相关推荐

  1. CentOS HarBor安装与配置

    HarBor 安装与配置 Prerequisites for the target host Resource Capacity Description CPU minimal 2 CPU 4 CPU ...

  2. windows安装并配置apache https 网站 发布企业级iOS APP(enterprise)

    1. 安装并配置apache 安裝apache時,域名和服務器名使用服務器IP,建議端口選8080(检查端口是否被占用?netstat -ano) 下载apache_2.2.8-win32-x86-o ...

  3. Curl安装以及配置支持HTTPS协议

    一.安装openSSL 1. 下载 最新版本:https://www.openssl.org/source/ 我用的版本是 openssl-1.1.0g.tar.gz 2. 解压 执行命令:tar - ...

  4. Harbor安装配置

    本节介绍如何执行 Harbor 的全新安装. 如果您是从先前版本的 Harbor 升级,则可能需要更新配置文件并迁移数据以适应更高版本的数据库架构.有关升级的信息,请参阅 升级 Harbor. 在安装 ...

  5. Harbor安装教程

    一.安装docker 下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-23.0.4.tgz 1.1 解压二进制包 ...

  6. 手动部署OpenStack环境(二:CentOS6.6虚拟机的安装及配置)

    任务二.CentOS 6.6虚拟机的安装及配置 2.1.安装环境检查 2.2.安装及配置controller0节点 2.3.安装及配置computer0节点 2.4.安装及配置network0节点 2 ...

  7. 手动部署OpenStack环境(一:Virtual Box 5.1 环境的安装及配置)

    任务一.Virtual Box 5.1 环境的安装及配置 1.1.安装环境检查 1.2.创建安装目录 1.3.安装及配置 实验目的及要求 完成Virtual box平台安装,会应用相关操作: 在vir ...

  8. OpenStack环境搭建(三:Computer与Controller节点的安装及配置)

    实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...

  9. OpenStack环境搭建(二:Fuel Master的安装及配置)

    实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...

最新文章

  1. html局部可复制,截取网页局部区域css样式的方法和系统的制作方法
  2. 看新闻的时间用的太多了
  3. C 语言调用CPU指令,CPU 1214C中 TSEND_C指令 最多可以使用几次-工业支持中心-西门子中国...
  4. vantweapp中的SwipeCell踩坑
  5. 万物皆可Graph | 当推荐系统遇上图神经网络(四)
  6. 如何更流畅地使用 Google 搜索?
  7. python向下_如何在python中向下转换
  8. Atitit.sql where条件表达式的原理  attilax概括
  9. c语言函数 参数,C语言函数的调用与参数
  10. 1062. 洪水填充
  11. windows系统的包管理器【choco】
  12. 二分法和黄金分割法的区别和联系,附Python代码
  13. JMeter - Non HTTP response code: java.net.BindException,Non HTTP response message: Address alrea...
  14. 命令行登陆北邮校园网
  15. buuctf-misc-镜子里面的世界-wp
  16. 疫情裁员浪潮,如何提高面试通过率
  17. 学术论文常用写作结构
  18. 什么是锁相放大器?它的作用与功能
  19. 【学习记录-R】以U检验为例解释单/双侧检验
  20. 深度学习未来的发展点

热门文章

  1. 对象的调用和构造函数
  2. CGerberDoc* GetDocument() const; 错误
  3. IT菜鸟的第2天(输入输出,数据类型,运算符的使用)
  4. Android版-微信APP支付
  5. Python轻量级Web框架Flask(4)——Flask会话技术和Flask模板语言
  6. 云服务器传文件用什么软件,免费云主机文件传输软件推荐,大文件极速秒传
  7. 加州伯克利计算机科学录取,卡内基梅隆大学CMU的计算机科学SCS今年率取率是5%【女儿去了scs】...
  8. 实战解析 Categor 对已有类进行扩展
  9. linux挂载opt磁盘,centos挂载硬盘到opt
  10. 淘宝商品价格变化监控并自动截图网页为证