微服务实战系列之玩转Docker(十四)

news2024/12/25 13:06:17

前言

时逢白露天骤变,细雨纷纷气渐凉,忽有故人心上过,回首山河已是秋。——碎碎念

秋天来临的那一刻,你会想起故人么?此刻,突然一句唐诗——“故人具鸡黍,邀我去田家”,飘过了耳边…

何谓故人?比如孩童时的玩伴、小学时的挚友、中学时的死党、大学时的同窗…Ta们带给你的可能有欢乐、有忧伤、有启发、有志趣,更有一段又一段数不清道不尽的斑驳岁月。

在曾经的日子里,那些惊艳于平凡生活的时刻,注定会印在彼此的心间;而我们也会在时光之轮上,重新刻下新的心愿,与星辰结伴同行。

洗炼前尘往事,开始言归正传,话不多说,且听且看。有些盆友催更了,怎么还不更新玩转Docker系列啊,根本没看够啊…

在这里插入图片描述

为了能够响应各位盆友的号召,今日博主大手一挥,呼之即来。博主的玩转Docker系列,深耕Docker容器技术领域内重要的概念、原理、实践,从0到1带领任何一个人(即使是小白)读懂它,学会它,运用它。

那么,今天博主邀请各位认识一下Docker的可视化工具之一:Portainer

一. Portainer简介

在这里插入图片描述

1. 介绍

Portainer是一款轻量级的容器化应用部署的管理平台,可用在Docker, Swarm, Kubernetes等不同的容器环境中。它通过一个智能化UI或者API,可以轻易的管理各种资源(包括containers, images, volumes, networks等)。

它以一个容器的形式,可运行在任何集群中,不限于Window或Linux。简单不简单?

2. 架构图

下面我们来看看Portainer的架构图,掌握的核心交互:

在这里插入图片描述

一句话总结:一个Portainer Server可与多个Portainer Agent连接,从而实现通过一个操作界面管理多个集群的目标。同时Portainer Server满足了数据持久化的需要,Portainer Agent会将数据(无状态)源源不断的发送到Portainer Server

提示:在同一个集群中,目前不支持运行Portainer Server容器的多个实例。Portainer建议在特定的manager节点上运行Portainer Server,并在其余节点上部署Portainer Agent。

二. Portainer入门

了解Portainer后,你是不是“蠢蠢欲动”了?那博主满足你的心愿,咱们边走边聊。

1. 安装

首先需要安装一个Portainer。博主准备通过docker compose运行一个Portainer容器。

1.1 准备Portainer yaml

准备一个名为:docker-compose.yaml的文件,内容如下:

version: "3"
services:
  # 定义一个服务
  portainer:
    # 指定镜像和版本
    image: portainer/portainer:latest
    # 指定容器名称
    container_name: portainer
    # 指定映射端口
    ports:
    - "9000:9000"
    # 指定容器卷(数据目录)
    volumes:
    - /myapp/portainer/data:/data
    - /var/run/docker.sock:/var/run/docker.sock

1.2 启动Portainer

将其上传至manger节点中的指定目录,比如:/usr/local/myapp
在这里插入图片描述
上传成功后,可通过执行:docker compose up --build(如后台运行,可加-d),启动portainer容器如下:
在这里插入图片描述
操作完成后,即可通过docker ps,看看Portainer容器是否已运行:
在这里插入图片描述

2. 访问Portainer

安装完成后,我们可以通过浏览器打开Portainer管理界面了。但是不要着急,请先创建一个用户吧。

2.1 创建用户

Portainer默认提供一个admin用户(管理员),只需要设置一个密码如下所示:
在这里插入图片描述

2.2 登录

通过admin登录管理平台:
在这里插入图片描述

2.3 查看

登录成功,我们就可以使用Portainer了。默认提供本地容器(local)的呈现。
在这里插入图片描述
点击local,可以查看docker运行面板:

在这里插入图片描述

至此,你可以畅享Portainer带给你的“轻松自在”,再也不用牢记一堆docker command了。

三. 管理Swarm集群

通过Portainer的管理菜单,我们得知Portainer对容器编排及其资源均进行了统一管理,包括镜像、容器、卷、服务、网络等。那么,博主就以Swarm为例,看看它是如何实现Docker的可视化运维和管理的。

1. 查看Swarm status

1.1 see集群节点

打开Swarm菜单,查看集群节点列表,相当于执行了一次docker node ls

在这里插入图片描述
也可以通过可视化页面,一览无余(当前集群无service):
在这里插入图片描述

1.2 see节点详情

点击任一node,可查看当前节点的详情:
在这里插入图片描述

2. 发布Service

2.1 创建service

我们通过docker service create,向集群发布一个nginx的服务后,点击Services,支持查看当前集群的服务列表:
在这里插入图片描述
点击服务名称,我们可以继续查看service的详情:
在这里插入图片描述

2.2 查看Container

如Service运行成功,我们还可以通过Container菜单,轻松一览当前docker主机的容器列表:
在这里插入图片描述
点击容器名称my_nginx容器后,可以看看它的详细情况:

在这里插入图片描述
你还可以通过点击页面下方的各种蓝色按钮,继续对容器完成各种操作,比如查看容器运行日志,进入容器、查看容器状态等。

3. Swarm节点更新

通过以上介绍,我想各位应该知道如何使用Portainer了吧。那么,接下来博主模拟一下swarm node宕机的情况。

3.1 see集群节点

这是当前Swarm集群节点的情况,默认是3副本3节点,因此每个节点运行了一个副本(nginx容器):

在这里插入图片描述

3.2 下线一个节点

此刻,博主选择docker-worker1节点,将其状态更新为Drain(不可用):

在这里插入图片描述
此时,我们可以看到docker-worker1节点已变为Drain:

在这里插入图片描述

3.3 see集群服务

再次回到Swarm面板,我们发现docker-worker1运行的task,已自动迁移到了docker-manger1节点上了,丝滑不?

在这里插入图片描述

通过此例,我们不必再打开一个console或者shell去做各种command。你只需要在界面上,轻轻动动手指,即可完成集群的管理和运维,是不是很高效?

结语

为实现Docker的可视化运维,本文以精讲的方式对Portainer进行大篇幅的介绍,相信你通过此文会收获很多!

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~

系列回顾


微服务实战系列之玩转Docker(十三)
微服务实战系列之玩转Docker(十二)
微服务实战系列之玩转Docker(十一)
微服务实战系列之玩转Docker(十)
微服务实战系列之玩转Docker(九)
微服务实战系列之玩转Docker(八)
微服务实战系列之玩转Docker(七)
微服务实战系列之玩转Docker(六)
微服务实战系列之玩转Docker(五)
微服务实战系列之玩转Docker(四)
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(二)
微服务实战系列之玩转Docker(一)
微服务实战系列之云原生

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CAN通信入门 - 1

CAN通信入门 - 1 CAN通信原理 参考链接:CAN总线原理 CAN总线信号为差分信号,其有2根总线分别为CAN-L\CAN-H。 CAN总线之间的电平分为显性电平和隐性电平,其中显性电平对应的是逻辑0,隐性电平对应的是逻辑1。当CAN差分信号为0V时…

【Web】骨架屏

文章目录 概述骨架屏的实现方案page-skeleton-webpack-plugin安装基本使用 来源 概述 骨架屏(Skeleton Screen)是一种在页面数据加载完成前,先给用户展示出页面的大致结构(灰色占位图)的技术。当页面实际数据加载并渲…

【话费充值】话费API接口对接有哪些关键步骤

话费API接口对接通常包括以下几个关键步骤: 选择服务提供商:选择一个可靠的话费充值API服务提供商,这可能是电信运营商本身或是一个信誉良好的第三方服务提供商。注册和认证:在选定的服务提供商平台上注册,并获得API访…

自研商家如何快速接入电商平台订单数据?

随着电子商务行业的快速发展,越来越多的商家开始寻求高效的订单管理和数据整合方案。对于那些自研系统的商家来说,如何实现与各大电商平台之间的无缝对接,成为了一项重要挑战。点三电商API正是为此类需求量身打造,为商家提供了一站…

【动态规划】任务调度dp 自用

kkksc03考前临时抱佛脚 原题 题目背景 kkksc03 的大学生活非常的颓废,平时根本不学习。但是,临近期末考试,他必须要开始抱佛脚,以求不挂科。 题目描述 这次期末考试,kkksc03 需要考 4 4 4 科。因此要开始刷习题集…

晶体晶格热导率的快速可解公式

https://doi.org/10.1016/j.mtphys.2024.101549 晶格热导率(κL)是晶体的一项重要物理性质,在热管理中具有广泛的应用,如散热、绝缘和热电能量转换。 然而,准确、快速地测定κL带来了相当大的挑战。 在这项研究中,引入了一个公式…

计算、谋算(算计)与逻辑

谋算的“逻辑”和计算的逻辑既相似又有区别。 谋算的逻辑通常涉及到策略、计划和决策的制定。它关注的是如何在不确定的情况下,通过分析和推理来达到目标。谋算者会考虑各种可能性(01)、风险(0)和利益(1&am…

【鸿蒙应用开发】常见的容器组件:ColumnSplit、RowSplit和Flex

上一章已经了解了Column和Row的一些属性,以下是几个案例: 设置子组件水平方向的间距为:5 Entry Preview Component struct Index {State message: string Hello 鸿蒙;controller: webview.WebviewController new webview.WebviewControll…

【Java】Runtime与Properties获取系统信息

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 代码4.2 运行结果 五、总结: 一、前言 这些都被淘汰比较少用了…

深入研究基于多层卷积和全连接网络结构的数据处理与特征提取方法

1 问题 卷积层的输入输出的shape的计算公式探究多个卷积层加上多个全连接层的输出方法 2 方法 卷积层的输入输出的shape的计算公式:输出形状的计算公式:输出高度 (输入高度 - 卷积核高度 2 * 填充) / 步长 1输出宽度 (输入宽度 - 卷积核宽度 2 * 填…

一码空传临时网盘PHP源码,支持提取码功能

源码介绍 一码空传临时网盘源码V2.0免费授权,该源码提供了一个简单易用的无数据库版临时网盘解决方案。前端采用了layui开发框架,后端使用原生PHP编写,没有引入任何开发框架,保持了代码的简洁和高效。 这个程序使用了一个无数据…

设计模式 装饰模式(Decorator Pattern)

装饰器模式简绍 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 装饰器模式的基本结构 装饰器模式的基本结构如下&…

【数据管理】DAMA-数据安全

目录 1、概述 2、数据安全要求来源 3、业务驱动因素 4、目标和原则 5、脆弱性、威胁、风险 6、风险分类 7、安全过程 8、数据完整性 9、混淆或脱敏 10、数据安全类型 11、数据安全制约因素 12、系统安全风险 13、工具 1、概述 数据安全包括安全策略和过程的规划、…

无人机动力系统设计之电调芯片参数选型

无人机动力系统设计之电调芯片参数选型 1. 源由2. 关键因素2.1 电压范围2.2 电流处理能力2.3 控制方式2.4 PWM输出与分辨率2.5 通讯接口2.6 保护功能2.7 支持霍尔传感器与无传感器模式2.8 集成度与外围器件2.9 效率与散热2.10 市场供应与成本 3. 因素阐述3.1 PWM工作频率3.1.1 …

二次规划及其MATLAB实现

引言 二次规划(Quadratic Programming, QP)是一类重要的优化问题,其目标函数为二次函数,约束条件为线性不等式或等式。二次规划问题在工程、经济、金融等领域有广泛应用,如投资组合优化、人脸表情动画的权重求解、机械…

UE中如何制作后处理设置面板

1)UE中如何制作后处理设置面板 2)Magica Clothes 2插件与Burst编译问题 3)UI大小和文本变量 4)如何检索直线与网格的所有交点 这是第399篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社…

tabBar设置底部菜单选项以及iconfont图标,setTabBar设置TabBar和下拉刷新API

tabBartabBar属性:设置底部 tab 的表现 ​ ​ ​ ​ 首先在pages.json页面写一个tabBar对象,里面放入list对象数组,里面至少要有2个、最多5个 tab, 如果只有一个tab的话,H5(浏览器)依然可以显示底部有一个导航栏,如果没有,需要重启后才有,小程序则报错,只有2个以上才可以…

51单片机-蜂鸣器介绍-1

作者:王开心 时间:2024.9.11 目的:学习51进阶中。。。 蜂鸣器是一种一体化结构的电子讯响器, 采用直流电压供电, 广泛应用于计算机、 打印机、 复印机、 报警器、 电子玩具、 汽车电子设备、 电话机、 定时器等电子…

数学 |x-2| + 2|x-5| = 12 ,那么x = ?

1、先上图,问了一下AI,这AI的节奏是不认识这个。 2、这个题的解题思路:如何去掉绝对值符号,让这个题看上去正常一些,然后就可以解。 |x-2| 这个代表,x到2的距离。|x-5| 这个代表,x到5的距离。 …

基于SSM的“高校就业管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“高校就业管理系统”的设计与实现(源码数据库文档) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 首界面 后台首页 各管理功能 摘要 本论文主要讲述了基于SSM框…