1. 查看 docker compose    depoly 语法

  官网地址 : https://docs.docker.com/compose/compose-file/#deploy

  ENDPOINT_MODE

    取值:

      vip(默认):  virtual ip   容器互访等时候的虚拟 ip , 底层 通过 ipvs 访问虚拟ip 进行均衡负载

      eg : endpoint_mode: vip

      dnsrr  :  DNS round-robin 不使用 虚拟 ip 使用 真实的 ip 地址,多个 ip 地址之间使用 dns 循环 进行 均衡负载

      eg : endpoint_mode: dnsrr

  LABELS  帮助信息

      eg: labels:

          zonehoo:"eaon"

  MODE  

    取值:

      global   :   这个 service 全局只有一个 , 不可以横向拓展。

        eg: mode:global

      replicated(默认):  可以有一个或多个, 可以进行横向拓展。

        eg: mode:replicated

  PLACEMENT    设置 service 的一些限制条件

    取值:

      constraints

        eg: constraints:

            - node.role == manager   # 只会部署到 manager 节点

      preferences

  REPLICAS    # 在 mode 为 replicated 时

    eg:

      mode:replicated  # 模式为 可拓展的

      replicas:3  #设置三个节点

  RESOURCES  做资源的限制

    eg:

      resouces:

        limits:        # 限制该容器的资源

          cpus: '0.50'

          memory: 50M

        reservations:    # 为该容器 保留的资源

          cpus: '0.25'

          memory: 20M

  RESTART_POLICY    # 服务挂掉后 重启 的限制

    restart_policy:

      condition: on-failure

      delay: 5s

      max_attempts: 3   # 最大尝试次数

  UPDATE_CONFIG:    # service 更新的时候 的规则

    replicas: 2

    update_config:

      parallelism: 2  # 可以每次更新同时 2 个replicas

      delay: 10s    # 每次更新 parallelism 的间隔时间

2.编写 docker-compose

  #docker-compose.yml

# docker compose api 版本

version: '3'

services:

# 定义了 两个 service 分别是 名字分别是 wordpress 和 mysql

wordpress:

#image 为 word press

image: wordpress

#本地 8888 端口 映射 容器 80 端口

ports:

- 8888:80

#wordpress 连接数据库 的 host 为 mysql , passwword 为 root 类似于 -e

environment:

WORDPRESS_DB_HOST: mysql

WORDPRESS_DB_PASSWORD: root

depends_on:

- mysql

deploy:

# 可以进行横向拓展 初始化节点为3个

mode: replicated

replicas: 3

# 重启政策

restart_policy:

condition: on-failure

delay: 5s

max_attempts: 3

#更新政策

update_config:

parallelism: 1

delay: 10s

#指定连接 的网络 为 my-network

networks:

- my-network

mysql:

image: mysql:5.7.27

# 数据库 root 的 连接密码 和 所使用的数据库名称

environment:

MYSQL_ROOT_PASSWORD: root

MYSQL_DATABASE: wordpress

# 外部 mysql-data 挂载到 容器内的 /var/lib/mysql

volumes:

- mysql-data:/var/lib/mysql

#指定连接 的网络 为 my-network

networks:

- my-network

deploy:

# mysql 节点全局只有一个,不可以横向拓展

mode: global

# 只能部署到 manager 节点

placement:

constraints:

- node.role == manager

# 定义 volumes

volumes:

mysql-data:

# 定义 networks

networks:

my-network:

driver: overlay

3. 部署 wordpress

    docker stack deploy wordpress

  查看部署容器数量

    docker stack ls

  查看 容器部署具体细节

    docker stack ps wordpress

  查看 各个 sevice 的情况

    docker stack service wordpress

  访问 192.168.205.10:8888 即可

  

34. docker swarm Dockerstack 部署 wordpress的更多相关文章

  1. Docker swarm 实战-部署wordpress

    Docker swarm 实战-部署wordpress 创建一个overlay的网络 docker network create -d overlay demo 6imq8da3vcwvj2n499k ...

  2. 35. docker swarm dockerStack 部署 投票应用

    1. 编写 docker-compose.yml # docker-compose.yml version: "3" services: redis: image: redis:a ...

  3. 用Docker swarm快速部署Nebula Graph集群

    用Docker swarm快速部署Nebula Graph集群 一.前言 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群. 二.nebula集群搭建 2.1 环境准 ...

  4. 本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群,并部署客户端负载均衡和高可用

    本文作者系:视野金服工程师 | 吴海胜 首发于 Nebula Graph 论坛:https://discuss.nebula-graph.com.cn/t/topic/1388 一.前言 本文介绍如何 ...

  5. 在Docker Swarm上部署Apache Storm:第2部分

    [编者按]本文来自 Baqend Tech Blog,描述了如何在 Docker Swarm,而不是在虚拟机上部署和调配Apache Storm集群.文章系国内 ITOM 管理平台 OneAPM 编译 ...

  6. 在Docker Swarm上部署Apache Storm:第1部分

    [编者按]本文来自 Baqend Tech Blog,描述了如何在 Docker Swarm,而不是在虚拟机上部署和调配Apache Storm集群.文章系国内 ITOM 管理平台 OneAPM 编译 ...

  7. Docker Swarm从部署到基本操作

    关于Docker Swarm Docker Swarm由两部分组成: Docker集群:将一个或多个Docker节点组织起来,用户就能以集群的方式进行管理: 应用编排:有一套API用来部署和管理容器: ...

  8. docker swarm快速部署redis分布式集群

    环境准备 四台虚拟机 192.168.2.38(管理节点) 192.168.2.81(工作节点) 192.168.2.100(工作节点) 192.168.2.102(工作节点) 时间同步 每台机器都执 ...

  9. [docker swarm] 从单容器走向负载均衡部署

    背景 之前写过<<docker-compose真香>> 和<docker-compose.docker stack前世今生>两篇博客, 回顾一下思路: ① dock ...

随机推荐

  1. [YOLO]《You Only Look Once: Unified, Real-Time Object Detection》笔记

    一.简单介绍 目标检测(Objection Detection)算是计算机视觉任务中比较常见的一个任务,该任务主要是对图像中特定的目标进行定位,通常是由一个矩形框来框出目标. 在深度学习CNN之前,传 ...

  2. Vulkan SDK 之 Graphics Pipeline

    A graphics pipeline consists of shader stages, a pipeline layout, a render pass, and fixed-function ...

  3. 如何通过 Python 和 OpenCV 实现目标数量监控?

    今天我们将利用python+OpenCV实现对视频中物体数量的监控,达到视频监控的效果,比如洗煤厂的监控水龙头的水柱颜色,当水柱为黑色的超过了一半,那么将说明过滤网发生了故障.当然不仅如此,我们看的是 ...

  4. Golang go-gin 注册路由

    代码实现 main.go package main import ( "fmt" "github.com/jihite/go-gin-example/pkg/settin ...

  5. Mac电脑上怎么设置环境变量

    https://jingyan.baidu.com/article/8065f87f47b29523312498e4.html 环境变量是电脑操作系统中常用的一些变量,作用类似于将一些常用命令所在的文 ...

  6. Spark 内存管理

    Spark 内存管理 Spark 执行应用程序时, 会启动 Driver 和 Executor 两种 JVM 进程 Driver 负责创建 SparkContext 上下文, 提交任务, task的分 ...

  7. jsp页面使用<% 语句%> SQL Server数据库报空指针异常(在控制台可以正常执行)

    一直反感用SQL Server数据库,很影响电脑性能!!数据库作业不得不用 前几天作业一直报空指针异常: 自己检查了所传参数,和数组不为空 数据库查询语句不为空 然后查看SQL服务是否启动  主要是S ...

  8. centos7搭建kafka集群

    一.安装jdk 1.下载jdk压缩包并移动到/usr/local目录 mv jdk-8u162-linux-x64.tar.gz /usr/local 2.解压 tar -zxvf jdk-8u162 ...

  9. android 开发学习

    androidSDK自带SQLite数据库,使用时继承父类(SQLiteOpenHelper). this表对象本身,理解为指向自身的指针:super(超类)表对象的父类,即指向父类的指针. Cont ...

  10. POJ - 1065 Wooden Sticks(贪心+dp+最长递减子序列+Dilworth定理)

    题意:给定n个木棍的l和w,第一个木棍需要1min安装时间,若木棍(l’,w’)满足l' >= l, w' >= w,则不需要花费额外的安装时间,否则需要花费1min安装时间,求安装n个木 ...