Docker swarm集群之compose启动多服务

news2024/9/22 17:35:47

Docker swarm集群之compose启动多服务

本篇文章是在搭建过Swarm集群基础上进行的,如未搭建过请移步 :

[Docker swarm 集群搭建 - Wanwan’s Blog (wanwancloud.cn)]

环境信息

主机名IP主机配置
master10.10.10.32c2g
node0110.10.10.42c2g
node0210.10.10.52c2g

docker swarm集群环境准备完毕,导入docker-compose命令

docker swarm集群中的机器都要安装该命令

1、yum方式

[root@master ~]# yum -y install docker-compose

2、二进制方式

# 下载文件
[root@master ~]# wget https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose
# 修改文件权限
[root@master ~]# chmod +x /usr/bin/docker-compose

命令解析

docker stack deploy: 用于部署新的堆栈或更新现有堆栈。
例:docker stack deploy -c docker-compose.yml wordpress #部署,更新名为wordpress的堆栈

docker stack ls : 列出在Swarm中运行的所有堆栈

docker stack services: 列出堆栈中的服务,显示诸如副本数、期望副本数和可用副本数等信息
例: docker stack services wordpress # 列出名为wordpress堆栈中的服务,容器名,状态,副本数,所用镜像,端口等详细信息

docker stack ps  :列出堆栈中的任务(容器)
例:docker stack ps wordpress #查看到堆栈中容器状态,Id,镜像,运行所在主机等信息

docker stack rm: 会移除一个堆栈以及其所有服务
例:docker stack rm wordpress #删除wordpress堆栈及堆栈所创建的容器(用启动堆栈yml文件创建挂载的卷也会被删除,手动创建的卷不会被删除)

wordpress服务部署

准备启动文件

编写docker-compose.yml文件

[root@master ~]# cat > docker-compose.yml << EOF
version: "3" 
services:
  wordpress:
    image: wordpress
    ports:
      - 80:80
    networks:
      - overlay
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    deploy:
      mode: replicated
      replicas: 3
 
  db:
    image: mysql
    networks:
       - overlay
    volumes:
      - db-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    deploy:
      placement:
        constraints: [node.role == manager]
 
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    stop_grace_period: 1m30s
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]
 
volumes:
  db-data:
networks:
  overlay:
EOF

其中的 visualizer 服务提供一个可视化页面,可以从浏览器中很直观的查看集群中各个服务的运行节点。(加不加都行)

启动服务

[root@master ~]# docker stack deploy -c docker-compose.yml  wordpress

查看服务启动状态

[root@master ~]# docker stack ps  wordpress

image-20231027132946479

[root@master ~]# docker service ls 

image-20231027133027085

可以看到已经全部启动完毕,访问节点中的任意ip:80即wordpress博客页面 访问节点中的任意ip:8080即可视化页面可以看到集群状态

image-20231027133203366

删除服务

[root@master ~]# docker stack rm wordpress 

music部署

由于代码有些问题所以web端部署单副本,api部署3副本

下载源码包

链接:https://pan.baidu.com/s/1A685EDbAJgHGc44lY-1z4g?pwd=yyds 
提取码:yyds

上传到服务器

# 所有节点导入api镜像
[root@master ~]# docker load  < api.tar 
# 解压html包 (这里没有指定web部署节点,所以所有节点都需要解压这个文件,否则nginx会启动失败)
[root@master ~]# tar xf html.tar

image-20231027153140372

启动服务

# 启动服务
[root@master ~]# docker stack deploy -c docker-compose.yml  music
# 查看服务启动状态
[root@master ~]# docker stack ps music

image-20231027153506043

访问 任意节点ip:80:web端 ip:3000:api接口

image-20231027153637814

删除服务

[root@master ~]# docker stack rm music 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1144092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于mysql的请假系统,java/springboot/jsp/javaweb/tomcat

系统分为 学生/辅导员/超级管理员 登录注册、修改头像、个人资料。 学生登录可以提交请假申请。 辅导员登录可以管理学生信息、管理班级信息、管理课程信息。 超级管理员登陆可以管理用户信息、管理学生信息、管理辅导员信息、管理班级信息、管理二级学院信息、管理课程信息、…

【python图像处理】模糊图像

模糊前 模糊后 模糊 import os from PIL import Image, ImageFilterfacesPath face # 图片文件夹路径 faces os.listdir(facesPath) for face in faces:facePath os.path.join(facesPath, face)image Image.open(facePath)blurred_image image.filter(ImageFilter.BLU…

【ARMv8 SIMD和浮点指令编程】NEON 存储指令——如何将数据从寄存器存储到内存?

和加载指令一样,NEON 有一系列的存储指令。比如 ST1、ST2、ST3、ST4。 1 ST1 (multiple structures) 从一个、两个、三个或四个寄存器存储多个单元素结构。该指令将元素从一个、两个、三个或四个 SIMD&FP 寄存器存储到内存,无需交错。每个寄存器的每个元素都被存储。 …

由于找不到emp.dll无法继续执行此代码问题的五个解决方法

在玩游戏的过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中最常见的就是“找不到emp.dll”&#xff0c;这个问题我们的游戏无法启动运行。本文将分享我在解决这一问题过程中的方法&#xff0c;希望能对遇到类似问题的玩家有所帮助。 emp.dll是一个动态链接库文件…

1820_ChibiOS中的同步消息

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 看到这里提到的这个模型&#xff0c;我在想是不是我一直没有搞定的多核可以利用这个机制来解决。如果是多核&#xff0c;ChibiOS的这种机制是否依…

vue3从基础到入门(一)

文章目录 简介提升使用创建脚手架vite 常用Composition APIsetuprefreactive函数响应式vue2响应式vue3实现响应式 reactive对比ref注意计算属性computed函数 监视watch函数watchEffect函数 生命周期hook函数toRef 简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c…

JDK API Diff Report Generator-Java版本对比工具

今天查资料找到了除了EMT4J之外&#xff0c;其他可以用于Java版本迁移的工具。 这里简单的记录一下。 非Java er&#xff0c;有不同意见欢迎评论区交流。 JDK API Diff Report Generator JDK API Diff是一个用于比较不同Java版本API区别的工具。github地址在这里。 例如&am…

10.28总结

目录 一.发布作业 二.写作业 三.批改作业 一.发布作业 点击简答题时———listvie<String>题目列表会新增一个题目 保存该题时———— 获取TextArea的文本,为list当前选中的对象赋值 发布日期不能为过往日期&#xff0c;截止日期不能晚于发布日期。——为发布日期设置…

测试用例基础知识

目录 什么是测试用例&#xff1f; 测试用例格式 测试用例编写 测试用例的设计方法 等价类 边界值 判定表 因果图 流程图 场景法 错误推测法 什么是测试用例&#xff1f; 测试用例 (Test Case)是指对一项特定的软件产品进行测试任务的描述&#xff0c;体现测试方案、…

maven环境变量,安装源,本地仓库配置

1. maven环境变量 我这里用的是idea自带的maven 数值为&#xff1a; D:\software\computer_software\java\IDEAJ\IDEAJ2021.2.1\IntelliJ IDEA 2021.2.1\plugins\maven\lib\maven3\bin 2. 安装源更换为阿里云&#xff08;我不知道清华源是什么网址&#xff0c;网上也没查到&am…

人工智能基础_机器学习007_高斯分布_概率计算_最小二乘法推导_得出损失函数---人工智能工作笔记0047

这个不分也是挺难的,但是之前有详细的,解释了,之前的文章中有, 那么这里会简单提一下,然后,继续向下学习 首先我们要知道高斯分布,也就是,正太分布, 这个可以预测x在多少的时候,概率最大 要知道在概率分布这个,高斯分布公式中,u代表平均值,然后西格玛代表标准差,知道了 这两个…

redux connect组件在手工传入参数时报错

redux使用connect创建一个高阶组件时后&#xff0c;如果手工给该组件传入参数时会因参数不同会报错&#xff0c;此时可以如下处理&#xff1a;

流量攻击:如何有效利用网络漏洞

在网络世界中&#xff0c;攻击者采用各种方法来试图利用网络漏洞来实施攻击。这些攻击可能导致目标网站宕机、性能下降&#xff0c;或者更严重的数据泄露。在本文中&#xff0c;我们将从攻击者的角度探讨如何有效地利用流量攻击&#xff0c;以便更好地理解如何防范这些攻击。 利…

二叉树的后续遍历(迭代法)

迭代法实现二叉树的后续遍历 1、递归版本 public static void dfs(TreeNode root){if(rootnull){return;}if(root.left!null)dfs(root.left);if(root.right!null)dfs(root.right);System.out.println(root.val); }从递归版本可以看出我们第一步需要遍历完所有的左节点 这里我…

电脑提示找不到msvcp140.dll无法继续执行代码的4种解决办法

今天我想和大家分享的是关于找不到msvcp140.dll无法继续执行代码的4种解决办法。在我们日常的教学和工作中&#xff0c;有时候会遇到这样的问题&#xff0c;让我们感到困惑和无奈。那么&#xff0c;msvcp140.dll究竟是什么&#xff1f;为什么会丢失呢&#xff1f;接下来&#x…

【java学习—十】异常(1)

文章目录 1. 概念1.1. 前言1.2. java中的异常 2. java运行时异常举例3. 总结 1. 概念 1.1. 前言 任何一种程序设计语言设计的程序在运行时都有可能出现错误&#xff0c;例如除数为 0 &#xff0c;数组下标越界&#xff0c;要读写的文件不存在等等。     捕获错误最理想的是…

elementUI el-collapse 自定义折叠面板icon 和 样式 或文字展开收起

: :v-deep{.el-collapse-item__arrow {width: 40px;}.el-icon-arrow-right:before {content: "展开";font-size: 15px;font-family: heiti;color: #2295ff;font-weight: bold;}.el-collapse-item__arrow.is-active {transform: none;}.el-collapse-item__arrow.is-a…

在VMware Workstation Pro安装win7

1.下载 地址 2.创建虚拟机 3.选择需要安装的系统镜像 4.选择系统版本 通常情况下选择 Windows 7 Ultimate 旗舰版&#xff0c;点击下一步&#xff0c;若提示产品密钥&#xff0c;则忽略 5.虚拟机命名 虚拟机保存位置保持默认即可&#xff0c;如果有需求可以更换位置 6…

韦东山D1S板子——汇编启动代码第一行分析(.long 0x0300006f)

1、汇编启动源码 2、分析二进制&#xff1a;0x0300006f 2.1、反汇编代码 2.2、jal指令 jal指令的作用&#xff1a;跳转到当前PC值偏移offset处执行&#xff0c;其中offset由jal指令的bi[31:12]表示&#xff1b; 2.3、分析指令&#xff1a;j 20030 <reset> j 20030 //伪…