34. docker swarm Dockerstack 部署 wordpress

 

 

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 即可

  

转载于:https://www.cnblogs.com/zonehoo/p/11417351.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值