微服务实战系列之玩转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(一)
微服务实战系列之云原生

在这里插入图片描述

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值