type
Post
status
Published
date
Apr 22, 2024
slug
summary
tags
开发
建站
category
技术分享
icon
password
🤔1.什么是Portainer & Harbor?📝2.Portainer & Harbor如何在实际项目中集成使用?📝3.环境安装3.1 docker安装(以CentOS7为例)3.2 Harbor安装3.3 Portainer安装3.4 Docker Swarm集群4.参考文章
🤔1.什么是Portainer & Harbor?
- Portainer & Harbor 都是与Docker生态系统紧密相关的工具,它们各自扮演着不同的角色。
- 支持Docker、Swarm、Kubernetes和ACI环境的管理
- 暴露了一个HTTP API,允许用户通过UI自动化操作
- Portainer能够从注册表拉取Docker镜像,并且可以创建特定环境中的容器
- Portainer社区版是一个轻量级的服务交付平台,旨在简化Docker和Kubernetes的管理
- 支持与不同的第三方复制适配器集成,用于复制数据,OIDC适配器进行认证和授权,以及扫描适配器进行安全扫描
- Harbor提供了REST API,可以通过Harbor门户或使用Swagger UI来访问
Portainer是一个开源的容器管理平台
Harbor则是由VMWare公司开源的容器镜像仓库
- 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引擎

启动docker

安装docker-compase

3.2 Harbor安装
harbor支持在线安装和离线安装两种模式

- 修改本地IP(非127.0.0.1)
- 配置https
- 默认密码 账号admin 密码123456


harbor依赖很多镜像组成服务,这些容器是必须启动,官方推荐配置是2核4G,为了保证这些容器的启动正常,内置了一个容器编排文件:docker-compose.yml

制作harbor服务
3.3 Portainer安装
docker拉取镜像

部署portainer容器


3.4 Docker Swarm集群

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


Portainer连接上之后可以轻松管理docker swarm

自动化部署(webhook)
