Docker进阶-资源管理Swarm+Portainer

简介: Docker Swarm资源管理 Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案。 使用它,用户可以将多个Docker主机封装为单个大型的虚拟Docker主机,快速打造一套容器云平台。

Docker Swarm资源管理

Docker Swarm是Docker官方三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态进行支持的核心方案。

使用它,用户可以将多个Docker主机封装为单个大型的虚拟Docker主机,快速打造一套容器云平台。

注意:Docker1.12.0之后版本,Swarm模块已经内嵌入Docker引擎,成为Docker子命令docker swarm,绝大多用户已经开始使用Swarm模块,Docker引擎API已经删除Docker Swarm。

基本概念

Swarm是使用SwarmKit构建的Docker引擎内置(原生)的集群管理和编排工具。使用Swarm集群之前需要了解以下几个概念。

节点

运行Docker的主机可以主动初始化一个Swarm集群或者加入一个已存在的Swarm集群,这样运行Docker的主机就成为一个Swarm集群的节点(node)。

节点分为管理(manager)节点和工作(worker)节点。

  • 管理节点用于Swarm集群的管理,docker swarm集合基本只能在管理节点执行。
  • 工作节点是任务执行节点,管理节点将服务(service)下发至工作节点执行。

集群中管理节点与工作节点的关系

服务和任务

任务(Task)是Swarm中的最小的调度单位,目前来说就是一个单一的容器。
服务(Services)是指一组任务的集合,服务定义了任务的属性。

服务有两种模式:

  • replicated services 按照一定规则在各个工作节点上运行指定个数的任务。
  • global services每个工作节点运行一个任务

两个模式通过docker service create的--mode参数指定

容器、任务、服务的关系

创建Swarm集群

了解Swarm集群由管理节点和工作节点组成后,我们创建一个包含一个管理节点和两个工作节点的最小Swarm集群。

初始化集群

使用docker swarm init在本地初始化一个Swarm集群。

docker swarm init --advertise-addr 192.168.1.1

如果你的Docker主机有多个网段,拥有多个IP,必须使用--advertise-addr指定IP。执行docker swarm init命令的节点自动成为管理节点。

注意:使用docker swarm init

增加工作节点

在另外两台服务器上执行上一步创建管理节点时候的输出的加入swarm集群的全集

docker swarm join \
--token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx \ 
192.168.1.1:2377

查看集群

在管理节点使用docker node ls查看集群。

docker node ls

部署服务

使用docker service命令来管理Swarm集群中的服务,该命令只能在管理节点运行。

新建服务

在创建好的Swarm集群中运行nginx服务

docker service create --replicas 3 -p 80:80 --name nginx nginx:latest

现在我们使用浏览器,输入任意节点IP,即可看到nginx默认页面。

查看服务

查看当前Swarm集群运行的服务

docker service ls

查看某个服务的详情

docker service ps nginx

查看某个服务的日志

docker service logs nginx

删除服务

从Swarm集群中移除某个服务

docker service rm nginx

资源管理

前面利用Docker Swarm快速搭建一个最小集群,也可以在集群上部署服务,但是会发现swarm中并没有提供统一入口查看节点的资源使用情况。这时我们可以用图形化管理工具Portainer帮我们管理swarm集群。

Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像、创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登陆用户管理和控制等功能。功能十分全面,基本能满足小型单位对容器管理的全部需求。

Portainer集群运行

下载Portainer镜像

#查询当前有哪些Portainer镜像
docker search portainer
docker pull portainer/portainer

安装Portainer(管理节点)

docker run  -d -p 9000:9000 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer

Portainer配置

设置管理员帐号密码

Portainer界面内容

相关文章
|
11天前
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
33 8
|
11天前
|
Prometheus 监控 Cloud Native
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
48 8
|
11天前
|
调度 开发者 Docker
Docker Swarm
Docker Swarm 为容器化应用的部署和管理提供了一种高效、可靠的方式,使开发者能够更轻松地构建和运行分布式应用。随着容器技术的不断发展,Docker Swarm 在企业级应用中的应用也将越来越广泛。
34 8
|
11天前
|
监控 Docker 容器
Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项
本文深入探讨了Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项,旨在帮助用户高效管理集群资源,适应业务变化,确保服务稳定性和资源优化。
32 6
|
23天前
|
Kubernetes 负载均衡 调度
Docker Swarm 核心概念及详细使用
Docker Swarm 是 Docker 的原生集群管理工具,用于将多个 Docker 主机整合成一个虚拟主机,提供集群管理和调度功能。其核心特点包括集群管理、容错与高可用性、负载均衡、声明式服务模型、服务发现和安全性。本文档详细介绍了 Docker Swarm 的安装配置、服务部署、节点管理、网络配置及故障模拟等关键操作,适用于中小型项目或对 Kubernetes 复杂性有所顾虑的用户。
41 6
|
27天前
|
应用服务中间件 nginx Docker
Docker Swarm、Docker Stack和Portainer的使用
Docker Swarm、Docker Stack 和 Portainer 各有其独特的功能和优势。Docker Swarm 适用于分布式服务的管理和编排,Docker Stack 便于多容器应用的定义和部署,而 Portainer 提供了直观的 UI,简化了 Docker 环境的管理。结合使用这些工具,可以大大提高容器化应用的部署和管理效率。希望本文对您理解和应用这些工具有所帮助。
50 5
|
28天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
3天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
118 77
|
11天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
5天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
30 3