zoukankan      html  css  js  c++  java
  • Docker下使用EMQX开源版本搭建自己的MQTT服务

    安装之前先做一下前置工作:

    1.在centos中添加用户emqx及用户组emqx,因为emqx在docker容器中用户是emqx。

    新增用户组
    groupadd emqx
    
    新增用户,分配用户组
    useradd -g emqx -m emqx
    
    查询用户
    cut -d : -f 1 /etc/passwd
     
    查询用户组
    cut -d : -f 1 /etc/group

    2.启动没有挂在宿主机目录的EQMX服务,启动成功后访问http://服务器Ip:18083 即可打开后台,默认账户名 admin 密码public

    docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx 

    3.复制已启动成功的EMQX容器中存储数据、日志相关的目录及其文件到宿主机制定挂在目录

    分别复制以下三个目录
    /opt/emqx/data
    /opt/emqx/etc
    /opt/emqx/log
    
    执行命令:
    docker 容器名称:目录 宿主机目录
    
    注意:容器目录和宿主目录中间有一个空格.
     
    示例:
    docker cp k8s_emqx_emqx-79b8ccdcc5-n28b2_tongchuan_003b9b1f-3c38-11eb-866c-5254003ed89b_0:/opt/emqx/data /docker_volume/emqx/data

    4.修改宿主机目录的所属用户和所属用户组为emqx

    chown -R emqx:emqx /docker_volume/emqx/ 
     
    注意:此处的/docker_volume/emqx/ 为苏主机目录,-R是将emqx及其所有子目录、文件的所属用户、用户组都修改。

    做完以上前置步骤之后就记得将之前为了复制数据目录而且启动的容器停止删除掉。下来就可以正式启动EMQX,分为以下两种方式:

    Docker启动方式:

    docker run -d --name emqx -e EMQX_HOST="127.0.0.1" -e EMQX_NAME="demo_emqx" 
    -v /docker_volume/emqx/data:/opt/emqx/data 
    -v /docker_volume/emqx/etc:/opt/emqx/etc 
    -v /docker_volume/emqx/log:/opt/emqx/log  
    -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx 
    
    
    注意: EMQX_HOST 是本机IP,就填写127.0.0.1即可。EMQX_NAME是EMQX存储数据的唯一目录名称。
          在docke启动的remqx运行产生的数据存储在 data/mnesia/$node_name 目录下,$node_name 是容器当前的 host_name 和 ip,用 docker 部署的时候每次都会变动的,
          为了保证容器重启之后配置的数据还在,需要配置这两个环境变量。

    Rancher启动方式:

     

  • 相关阅读:
    c++中的stack实现
    非虚函数是静态绑定
    函数返回const,以便控制访问
    析构函数为虚函数
    c++中初始化列表顺序和声明顺序一致
    define的误用
    模板就是让编译器帮你写代码
    mysql代码中设置变量
    拼接index
    python import vs from import
  • 原文地址:https://www.cnblogs.com/anybt/p/14125607.html
Copyright © 2011-2022 走看看