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

前言

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

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

何谓故人?比如孩童时的玩伴、小学时的挚友、中学时的死党、大学时的同窗…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(一)
微服务实战系列之云原生

在这里插入图片描述

评论 23
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值