💭Portainer & Harbor

geepair

技术分享|2024-4-22|最后更新: 2024-6-12|
type
Post
status
Published
date
Apr 22, 2024
slug
summary
tags
开发
建站
category
技术分享
icon
password

🤔1.什么是Portainer & Harbor?

  1. Portainer & Harbor 都是与Docker生态系统紧密相关的工具,它们各自扮演着不同的角色。
    1. Portainer是一个开源的容器管理平台
      • 支持Docker、Swarm、Kubernetes和ACI环境的管理
      • 暴露了一个HTTP API,允许用户通过UI自动化操作
      • Portainer能够从注册表拉取Docker镜像,并且可以创建特定环境中的容器
      • Portainer社区版是一个轻量级的服务交付平台,旨在简化Docker和Kubernetes的管理
      Harbor则是由VMWare公司开源的容器镜像仓库
      • 支持与不同的第三方复制适配器集成,用于复制数据,OIDC适配器进行认证和授权,以及扫描适配器进行安全扫描
      • Harbor提供了REST API,可以通过Harbor门户或使用Swagger UI来访问
  1. Portainer主要关注于容器的管理和操作,而Harbor则专注于容器镜像的存储、分发和安全。Portainer可以管理Docker Swarm集群并整合Harbor镜像库。

📝2.Portainer & Harbor如何在实际项目中集成使用?

Harbor作为镜像仓库的使用
Harbor主要用于存储Docker镜像,它支持用户创建项目、添加成员、上传和下载镜像等功能。在实际项目中,可以利用Harbor来管理构建好的Docker镜像,确保镜像的安全存储和高效访问。
Portainer作为容器管理工具的使用
Portainer提供了一个可视化的界面,用于部署、管理和监控Docker容器。它可以与Harbor私有仓库结合使用,通过Portainer可以方便地拉取Harbor上的镜像进行容器部署。
Jenkins与Harbor和Portainer的集成
在DevOps实践中,Jenkins可以用来自动化构建和测试过程,而Harbor则用于存储构建好的镜像。通过配置Jenkins,使其能够拉取代码仓库源码,构建Docker镜像并推送至Harbor仓库。然后,使用Portainer可视化部署工具部署生产服务项目。这种集成方式不仅提高了开发效率,也保证了环境的一致性和安全性。
Harbor的高级配置
在某些情况下,为了提高访问的安全性,Harbor可以配置使用外部代理,如nginx代理,以避免直接暴露IP地址或主机名。这对于企业级的应用尤为重要,因为它可以增加额外的安全层。

📝3.环境安装

3.1 docker安装(以CentOS7为例)

安装yum-utils,配置库的地址
安装docker引擎
notion image
启动docker
notion image
安装docker-compase
notion image

3.2 Harbor安装

harbor支持在线安装和离线安装两种模式
notion image
  • 修改本地IP(非127.0.0.1)
  • 配置https
  • 默认密码 账号admin 密码123456
notion image
notion image
harbor依赖很多镜像组成服务,这些容器是必须启动,官方推荐配置是2核4G,为了保证这些容器的启动正常,内置了一个容器编排文件:docker-compose.yml
notion image
制作harbor服务

3.3 Portainer安装

docker拉取镜像
notion image
部署portainer容器
notion image
notion image

3.4 Docker Swarm集群

notion image
Docker Swarm 是 Docker 的集群管理工具,Swarm集群的节点分两种:管理节点(manager node),工作节点(work node),两者的主要区别是对集群进行管理需要在管理节点上进行操作,包括集群创建,配置,服务创建,配置等有关工作。除此之后两者没有区别,管理节点和工作节点一样会运行contarner。
集群初始化
集群服务
创建集群之后便是创建服务,也就是一个集群可以包括多个服务,也就意味上可以在一个集群上部署多个项目,创建服务的时候我们就不需要再对节点进行管理,节点的管理归属集群管理。也就是说创建服务是基于当前集群的节点进行部署,当你需要扩展节点的时候,需要先将节点加入集群,然后再更新服务配置。
Portainer管理
手动管理docker swarm集群是有点繁琐,以服务创建和更新镜像为例,你需要事先在每个节点上面拉取最新的镜像,docker swarm在创建服务或更新服务的时候不会主动从仓库中拉取或更新镜像
notion image
notion image
Portainer连接上之后可以轻松管理docker swarm
notion image
自动化部署(webhook)

4.参考文章

Loading...