docker-compose安装emqx集群(最新)(host模式)

机器:

10.60.0.20

10.60.0.21

10.60.0.22

一、三台机子都配置域名(/etc/hosts)

bash 复制代码
10.60.0.20 node1.emqx.io
10.60.0.22 node3.emqx.io
10.60.0.21 node2.emqx.io

二、docker-compose.yml(10.60.0.21)

其他两台机子自己替换EMQX_NODE_NAME(节点名)

bash 复制代码
version: '3.9'

services:
  emqx1:
    image: emqx:5.6.1
    container_name: emqx1
    environment:
      - "TZ=Asia/Shanghai"
      - "EMQX_NODE_NAME=emqx@node1.emqx.io"
      - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
      - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@node1.emqx.io,emqx@node2.emqx.io,emqx@node3.emqx.io]"
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    ports:
      - 1883:1883
      - 8083:8083
      - 8084:8084
      - 8883:8883
      - 18083:18083
 #   extra_hosts:
      # 允许容器可以使用的host访问其余节点
#       - node2.emqx.io:10.60.0.21
#       - node3.emqx.io:10.60.0.22
    volumes:
      - ./logs:/opt/emqx/log
      - ./data:/opt/emqx/data
    privileged: true
    network_mode: host
    restart: "on-failure: 10"
    logging:
      driver: json-file
      options:
        max-size: 10m
        max-file: 3

三、启动

第一次启动应该会失败,因为data目录我是直接启动时自动创建的,查看容器日志会提示/opt/emqx/data/configs的权限不够。

解决办法:修改data及其子目录权限为777,再重新执行docker-compose up -d 启动容器。

另一种办法就是先创建data,赋权限777,在执行docker-compose up -d 启动容器

四、启动成功后查看emqx是否加入集群(10.60.0.20),我21和22分别叫emqx2,emqx3

bash 复制代码
docker exec -it emqx1 sh -c "emqx_ctl cluster status"

正确的结果(如果三个容器都启动了,可以看见三个节点都加入了。如果只启动了一个节点,集群里running状态的也只有当前节点,另外两个节点就在stop,以下是三个都启动成功)

如果执行以上命令是提示ping不通,像下面那样,那就是你的hosts没配对(Node 'emqx@node1.emqx.io' not responding to pings.)

原因是什么?就是你要为@符号之后的域名配解析ip,所以才有第一步的操作

五、控制台展示

相关推荐
Agome991 分钟前
Docker之nginx安装
java·nginx·docker
向日葵花籽儿3 分钟前
#运维 | 前端 # Linux http.server 实践:隐藏长文件名,简短路径 (http://IP:port/别名 ) 访问
linux·运维·前端
努力买辣条5 小时前
基于Docker的高可用WordPress集群部署:Nginx负载均衡+Mysql主从复制+ProxySQL读写分离
nginx·docker·负载均衡
我一定会有钱8 小时前
Linux爆音问题解决方法(隔一会会有奇怪噪音)
linux·运维·服务器
Dobby_0510 小时前
【Ansible】变量与敏感数据管理:Vault加密与Facts采集详解
linux·运维·云原生·ansible
记忆不曾留10 小时前
unbuntu 20.04 docker 部署wordpress
运维·docker·容器·wordpress·独立站建站
l_tian_tian_11 小时前
SpringClound——网关、服务保护和分布式事务
linux·服务器·前端
zcz160712782111 小时前
服务器与客户端
运维·服务器
准女婿_11 小时前
优考试局域网系统V6.0.0版
linux·windows·用户运营
门思科技11 小时前
LoRaWAN 的网络拓扑全解析:架构、原理与应用实践
服务器·网络·人工智能·科技·物联网·架构