0


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

在这里插入图片描述


本文转载自: https://blog.csdn.net/splendid_java/article/details/141990175
版权归原作者 一叶飞舟 所有, 如有侵权,请联系我们删除。

“微服务实战系列之玩转Docker(十四)”的评论:

还没有评论