Docker笔记:Docker Swarm 搭建集群与项目部署

Docker Swarm安装部署应用 不过,Docker Swarm 集群模式下却默认使用的是 Overlay 网络(覆盖网络),这里简单介绍一下什么是 Overlay 网络。Overlay 网络其实并不是一门新技术,它是指构建在另一个网络上的计算机网络,这是一种网络虚拟化技术的形式,近年来云计算虚拟化技术的演进促进了网络虚拟化技术的应用。所以 Overlay 网络就是建立在另一个计算机网络之上的虚拟网络,它是不能独立出现的,Overlay 底层依赖的网络就是 Underlay 网络。 阅读详情

关于 Docker Swarm

1 )Swarm的引入

  • Docker Compose 只能编排单节点上的容器,即: 单台服务器上的集群部署
  • 如果要实现多台服务器上的集群部署,就可以选择 Swarm
  • Docker Swarm 是Docker公司推出的用来管理docker集群的工具
  • 使用 Docker Swarm 可以快速方便的实现高可用集群
  • Docker Swarm 可以让我们在单一主机上操作来完成对整个容器集群的管理工作
  • 使用Docker Swarm可以让单一主机上的容器快速部署到10个、20个或者200个主机上面,实现高可用集群
  • 从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm)
  • 并且已经内置了服务发现工具,我们就不需要像之前一样, 再配置 Etcd 或者 Consul 来进行服务发现配置了
  • Dokcer Swarm 是Docker官方的提供的集群部署管理工具,基于原生Docker
  • 相比K8s要更简单、更容易上手
  • 如果您的节点(物理机)在1000台以内,完全可以使用 Docker Swarm 实现部署
  • Swarm 和 Kubernetes 比较类似,但是更加轻,具有的功能也较 kubernetes 更少一些

2 )Swarm 节点

  • Docker swarm中有节点的概念,一个节点就可以通俗的理解为一个机器
  • 可以是物理服务器也可以是虚拟机、云等等
  • 节点分为: 管理 (manager) 节点和工作 (worker) 节点
  • 管理节点(Manager)
    • 管理节点用于 Swarm 集群的管理,负责集群控制
    • 通过监控集群状态、分发任务到工作节点
    • docker swarm 命令基本只能在管理节点执行
    • 节点退出集群命令 docker swarm leave 可以在工作节点执行
    • 一个 Swarm 集群可以有多个管理节点,节点数量可以是 3, 5, 7 个,用来保证管理节点的高可用
    • 但只有一个管理节点可以成为leader,leader 通过 raft 协议实现
  • 工作节点(Worker)
    • 是任务执行节点,管理节点将服务 (service) 下发至工作节点执行
    • 管理节点默认也作为工作节点
  • 节点的有效性有三种
    • Active 调度程序可以分配任务给节点
    • Pause 调度程序不分配新任务给节点,但现有任务继续运行
    • Drain 调度程序不分配新任务给节点,调度程序关闭任何现有任务并将它们调度到可用节点上

3 )Swarm 任务和服务

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

Docker swarm 集群搭建

1 )准备工作

  • 准备4台机器(物理机,虚拟机,云主机都可以),假定他们ip分别是
    • 192.168.1.10 作为管理节点
    • 192.168.1.11 作为工作节点
    • 192.168.1.12 作为工作节点
    • 192.168.1.13 作为工作节点
  • 先关闭防火墙,作为演示,注: 实际服务器要配置防火墙规则,仅作为网络连通演示
    • 使用 centos 演示
      • 关闭 SELinux
        • $ getenforce 查看状态
        • 如果不是关闭状态,则修改配置文件
          • $ vi /etc/selinuux/config
          • 修改 SELINUX=enforcing 改为 SELINUX=disabled
      • 关闭防火墙
        • $ systemctl stop firewalld
      • 配置主机 hostname
        • 获取hostname $ hostname
        • 修改有两种方式
          • 临时有效: $ hostname worker_11
          • 永久有效: $ vi /etc/hostname 并 重启机器
            • .10 配置 manager_10
            • .11 配置 worker_11
            • .12 配置 worker_12
            • .13 配置 worker_13

2 )初始化集群

  • 在 .10 这个管理节点上操作
    • $ docker swarm init --advertise-addr 192.168.1.10
    • 之后会输出一段提示命令
  • 在 .11,.12,.13 主机上执行上述提示命令
    • $ docker swarm join --token SWMTKN-1-52tr219htvsg1volky2tej7pj8bjs2j78q4b6wc9fnt72kkchd-29ohn4mgz191f6oznldvjiw47 192.168.1.10:2377
    • 这样工作节点都加入到了集群里,上述 token 是当前管理节点签发的一个令牌
  • 在 .10 上
    • 执行 $ docker node ls, 可以看到集群里有哪些节点了, 这个命令只能在 manager节点上运行
    • 执行 $ docker node inspect 具体的nodeID 可查看节点详细信息
  • 有新的机器想要加入集群,则在 .10 机器上,输入 $ docker swarm join-token worker
    • 就可以重现第一次出现的加入命令
  • 如果想要加入 manager, 则在 .10 机器上,输入 $ docker swarm join-token manager
    • 就可以看到创建 manager节点的命令
  • 删除节点,执行两个命令
    • 在管理节点上 $ docker node rm nodeID -f
    • 在工作节点上 $ docker swarm leave -f
    • 不分顺序
  • 管理节点降级为工作节点 $ docker node demote nodeID
  • 工作节点升级为管理节点 $ docker node promote nodeID

Docker Swarm创建容器并部署项目

  • 之前 docker run 创建的容器,只能在当前计算机上运行, 不具备扩容性,不方便管理
  • 现在 docker service 服务具备扩容,滚动更新,回滚等功能,可部署在多台服务器
    • 创建的服务可以包含多个容器
    • 会自动部署到 docker swarm 对应的集群里
  • $ docker service logs 查看某个服务日志
  • $ docker service rm serviceName 删除某个服务
  • $ docker service ls 查看所有服务详情
  • $ docker service inspect 查看服务详情
  • $ docker service ps serviceName 查看服务力运行的xxx容器

1 )创建nginx对应的服务,里面可以包含多个容器

  • $ docker service create --name nginx --replicas 2 --publish 80:80 nginx
    • --replicas 指定副本数量
    • 这样可以把2个容器随机部署到集群中的2台机器上
  • 通过 $ docker service ls 可按到运行的 nginx 服务
  • $ docker service ps nginx 查看 nginx 服务有哪些容器
  • 部署好之后,就可以通过 ip地址或域名访问到 nginx 服务了
  • 其底层实现是,基于 ingress 网络完成通信和负载均衡
    • 访问集群里的任意一台服务器,都可以访问到 nginx
  • 上面指定了端口,也不会存在冲突,实际映射的是服务端口,只暴露了一个服务端口
  • 我们访问的时候,是访问的服务

2 )对nginx服务进行动态调整(扩容和缩容)

  • $ docker service update --replicas 3 nginx 或
  • $ docker service scale nginx=3
  • 指定数量可以超过主机数量,每台主机可运行多个nginx服务
  • 当一台机器上一个容器挂掉后,会动态的随机启动一个新的容器

3 )创建 nginx 并映射目录

  • $ docker service create --name nginx --replicas 8 -p 80:80 --mount type=bind,src=/root/wwwroot/html,dst=/usr/share/nginx/html nginx
    • src 物理机或本机目录
    • dst nginx容器里面的目录
    • 以上命令在管理节点执行
  • 以下命令在所有机器上执行
    • $ mkdir /root/wwwroot/html
    • $ cd /root/wwwroot/html
    • $ touch index.html 写一些任意的东西
    • 以上这些在集群的所有机器上执行
  • 当访问任意节点ip的时候,可能加载的并非当前ip对应主机的服务
    • 比如访问 .11 的节点,可能提供服务的,并非 .11主机内的服务
    • 这里是基于 ingress 网络实现的负载均衡
    • 内部有个算法实现计算谁的资源空闲,找谁提供服务
中小型集群部署,Docker Swarm(集群)使用及部署应用介绍 说到集群,第一个想到的就是k8s,但docker官方也提供了集群和编排解决方案,它允许你将多个 Docker 主机连接在一起,形成一个“群集”(Swarm),并可以在这个 Swarm 上运行和管理你的服务。与Kubernetes相比,Docker Swarm的群集管理功能相对简单,Swarm更适合于小型到中型的容器部署,并且通常用于简单的应用程序部署和管理。如果经常用docker-compose 的人员来说,可以这样容易理解。 阅读详情

相关推荐

使用 Docker Swarm(集群) 和Docker Stack(堆栈)部署容器化应用

Docker Stack(堆栈) 是在 Swarm 上管理服务堆栈的工具。而在上面文章 中介绍的 Docker Swarm 只能实现对单个服务的简单部署,于是就引出了Docker Stack。上面我们介绍到docker-compose:可以在一台机器上使用docker-compose.yml轻松部署多个服务(如nginx,php,mysql)docker swarm:将一个服务部署至多台机器(如nginx,部署到机器1,机器2,机器3)

4844

Docker Swarm集群部署

Docker Swarm集群部署1 方案介绍1.1 概述1.2 软件包2 Swarm集群搭建2.1 IP规划2.2 基础配置2.2.1 关闭SELinux2.2.2 关闭防火墙或开放需要的业务端口2.2.3 调整max_open_files2.2.4 重启检查SELinux、firewalld和open files2.3 配置主机名解析2.4 安装Docker2.5 创建集群2.5.1 初始化主管理节点2.5.2 增加从管理节点2.5.3 查看管理节点信息2.5.4 增加工作节点2.5.5 查看集群信息2.

Zhuge_Dan的博客 7391

Docker Swarm集群实践——部署篇

Swarm 简介 Swarm是Docker公司在2014年12月初新发布的容器管理工具。和Swarm一起发布的Docker管理工具还有Machine以及Compose。Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client均可以直接

GIS+=地理信息+云计算+大数据+容器+物联网+... 9907

Docker Swarm

1、什么是docker swarm ? Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm 简单理解就是多台服务器搭建一个docker集群,每个服务器就是集群中的一个节点。 参考:Docker三剑客之Docker Swarm - 一本正经的搞事情 - 博客园 2、docker swarm的几个关键概念 swarm :集群管理工具 node :节点,一个节点就是docker

Olivier0611的博客 2万+

docker swarm集群部署

Swarm 是 Docker 公司在 2014 年 12 月初发布的一套较为简单的工具,用来管理 Docker 集群,它将一群 Docker 宿主机变成 一个单一的,虚拟的主机。Swarm 使用标准的 Docker API接口作为其前端访问入口。 换言之,各种形式的 Docker Client(docker client in go,docker_py,docker 等)均可以直接与 Swarm ...

weixin_42446031的博客 4786

【docker的那些事】搭建Swarm集群

前言 前面我们对docker compose进行了介绍和使用,然而docker compose比较适用于单机的环境下,对于多机的环境下docker也提供了对应的能力,首先我们得准备三台服务器,任意三台可以互相访问的服务器都行。 搭建swarm集群 选择一台服务器为manger。 manager node也可以作为worker node提供服务 查看ip 执行: docker swarm init --advertise-addr=你的ip 此处注意控制台的打印信息 进入另外两个worker服务器,

陈橙橙 2510

手把手教你docker swarm集群部署

文章目录一、什么是docker swarm?二、docker swarm基本结构图三、准备工作1.准备三台cetnos8已安装docker的虚拟机,并且配置好ip地址。2.更改主机名3.配置hosts文件4.关闭防火墙和selinux四、docker swarm集群部署1.创建swarm集群2.添加节点主机到swarm集群3.创建一个服务4.swarm的动态缩容服务总结 一、什么是docker swarm? Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排

qq_42778369的博客 5290

docker——部署Docker swarm集群

一、Docker swarm简介 Docker swarm与docker-compose一样,都是docker官方推出的docker容器的编排工具。但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。 Docker swarm:其作用就是把若干个Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docke

看清所以看轻 1406

Docker Swarm集群搭建

Docker Swarm集群搭建1 背景2 环境3 安装部署3.1 操作系统部署3.1.1 主机名设置3.1.2 网络设置3.1.3 端口设置3.2 中间件部署3.2.1 ansible安装3.2.1.1 安装3.2.1.2 配置3.2.1.3 测试3.2.1.4 批量开具端口3.2.2 yum源设置3.2.2.1 挂载系统盘3.2.2.2 设置本地源3.2.2.3 安装web服务3.2.2.4 验证3.2.3 docker 部署3.3 Docker Swarm集群部署3.3.1 创建Swarm集群3.3.

水布天 2341

基于docker swarm搭建ELK集群

阿里云docker安装教程以及镜像下载加速 1 Swarm介绍 Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。 总而言之使用swarm搭建集群是非常方便的,先看一下doc...

李谦的博客 4803

一文读懂Docker之Docker Swarm集群平台搭建

本文介绍了Docker Swarm集群的架构与部署方法。Docker Swarm是Docker官方提供的容器编排工具,采用master-slave架构,包含管理节点(manager)和工作节点(worker),支持服务发现、负载均衡和故障恢复。文章详细说明了Swarm的核心概念如服务(service)、任务(task)及调度策略,并提供了在三台主机上部署Swarm集群的完整步骤:包括环境准备、Docker安装配置、manager节点初始化以及worker节点加入集群的过程。通过2377/7946/4789端

野熊佩骑的博客 1616

docker swarm 集群部署

注:出现Are you sure you want to continue connecting (yes/no)?1、各节点根据节点配置表修改自己的主机名,并且把所有节点的信息添加到hosts文件。注:这docker镜像仓库地址是学校老师弄得,自己实验时要自己找到docker镜像。2、设置ssh从sw_Manager上免密登录其它节点。4、关闭防火墙、关闭selinux。6、修改docker镜像仓库地址。2、添加工作节点到swarm集群。得到swManager密钥。3、查看集群节点列表。

jinxgemini的博客 878

深入解析国家企业征信系统瑞数6vmp算法逆向实战

本文深入解析了国家企业征信系统所采用的双层防护机制,重点聚焦于瑞数6代vmp算法的逆向实战。文章详细拆解了从加速乐521状态码的绕过,到瑞数412挑战的核心算法还原过程,提供了通过动态Hook、日志分析进行算法逆向,并用Python实现自动化请求链的完整技术方案,旨在为安全研究与技术学习提供参考。

yellow的专栏 613

Docker Swarm集群搭建与运维

Docker Swarm集群搭建与运维是企业容器化转型的重要环节。通过本文的介绍,我们了解了Docker Swarm集群的搭建、管理、监控和维护等方面的内容。掌握这些技能,将有助于提升企业运维效率,降低运维成本。在实际应用中,建议结合企业实际情况,不断探索和优化集群管理方案,为企业的数字化转型提供有力支持。

2501_92488950的博客 1570

AI视频生成成本优化实战:混合架构与硬件选型

AI视频生成技术正面临效果与成本的二元博弈,其核心挑战在于高昂的推理算力消耗与黑箱服务的不确定性。从技术原理看,视频生成依赖扩散模型等深度学习架构,通过多轮迭代实现像素级合成,这导致GPU显存占用和电力消耗呈指数级增长。在工程实践中,采用混合推理架构能有效平衡成本与质量,例如云端处理关键帧配合本地渲染过渡帧,实测可降低58%支出。硬件选型方面,消费级显卡魔改与边缘计算设备为中小企业提供了可行方案,如RTX 3090显存扩容或Jetson AGX边缘部署。当前AI视频应用已渗透电商直播、新闻制作等领域,但需警

weixin_29531177的博客 295

QGC4.0.11界面修改

QGC4.0.11。

超维空间科技的博客 2468

Docker笔记:Docker Swarm, Consul, Gateway, Microservices 集群部署

配置dockerfile,简单示例仅供参考 micro_a_Dockerfile。配置dockerfile,简单示例仅供参考 micro_b_Dockerfile。配置dockerfile,简单示例仅供参考 micro_c_Dockerfile。1 )将各个微服务项目打包,比如goWeb应用, 这个步骤是前置任务。3.3 启动第二个节点(端口8501), 加入到 consul1。3.4 启动第三个节点(端口8502), 加入到 consul1。以下步骤是大体步骤,比较粗略,忽略一些细节赘述,仅供参考。

Wang的专栏 2084

CODESYS数据处理合集(高低字节/ 字/浮点数/位)

VAR_INPUT//字节0//字节1END_VARVAREND_VAR。

RXXW_Dor的博客 358

Docker Swarm集群搭建与管理全攻略

本文详细介绍了如何搭建和管理 Docker Swarm 集群。首先,通过节点准备,将不同节点分配为 manager 和 worker 角色。接着,详细阐述了初始化 manager 节点、添加和管理 worker 节点的步骤,包括查看、删除节点以及设置节点的排水模式等操作。文章还深入讲解了如何通过 Docker Compose 文件在 Swarm 集群中创建、查看和删除服务,并展示了如何利用节点标签管理服务的部署位置,以实现更灵活的服务调度。通过实际操作示例和命令,读者可以清晰地掌握 Docker Swarm

黎明鱼儿 1594

一文读懂 SAP ICF Services:从 SICF 激活到 ABAP OData V2/V4 安全与实战

本文系统化介绍了ABAP系统中ICF服务的关键概念及实践要点。主要内容包括:ICF服务的核心安全机制,需显式激活才能响应HTTP请求;在SICF中正确激活服务的操作步骤;OData V2/V4服务所需的不同ICF节点配置,如V4统一入口节点/sap/opu/odata4;典型问题如default_host未激活会导致HOST_INACTIVE错误;安全实践包括CSRF防护机制和权限对象(S_ICF_ADM)配置;以及实际案例分析和常见ICF服务节点的功能说明。文章为ABAP开发者与运维人员提供了ICF服务管

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 472

【WorkBuddy专栏53】我的WB为什么变聪明了——SOUL与USER配置管理实战(上)

【WorkBuddy专栏53】我的WB为什么变聪明了——SOUL与USER配置管理实战(上)

AI人人懂 248

Docker Swarm集群部署管理

在企业中,相对于Docker Swarm集群的安装部署,更重要的是Docker Swarm集群的管理。公司要求云计算工程师对Docker Swarm进行日常管理。包括不限于节点管理、服务管理、网络管理、数据卷管理等等可以让服务之间的容器通过容器名称进行通信在Swarm集群中使用Overlay网络可以连接到一个或多个服务。添加Overlay网络需要在管理节点上先创建一个Overlay网络。

weixin_73059729的博客 2227

【DRAM存储器五十六】LPDDR5介绍--WCK2CK Leveling和Read gate training

简述LPDDR5 WCK2CK leveling和read gate traning基本原理与操作步骤

highman110的博客 8794

Docker Swarm 集群部署

在 manager 节点执行,确认 worker01 和 worker02 状态为 Ready。在所有主机的 hosts 文件中添加地址解析记录,下面以 manager 主机为例进行操作。防火墙:如果防火墙未关闭,需开放 2377/tcp, 7946/udp, 4789/udp。输出中会包含 worker 节点加入集群的命令,保存此命令。网络配置:确保所有节点在同一个局域网,且主机名解析正确。Docker 版本:所有节点 Docker 版本需一致。docker swarm join 工作节点加入集群。

weixin_75145375的博客 1373

【华为OD机考】2025C+B+2024E+D卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】

可上练习华子OD、大厂真题绿色聊天软件戳od1441了解算法冲刺训练(备注【优快云】否则不通过)

weixin_48157259的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Docker笔记:docker compose部署项目, 常用命令与负载均衡
下一篇: Docker笔记:Docker Swarm 结合 Docker Compose 来部署集群
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值