基于docker的emqx,数据持久化,防止重启配置丢失

docker中运行的emqx,采用在內置账号、密码进行身份认证的情况下,如果容器重启,那么上述配置将丢失。

一下操作基于emqx 4.4.19

1、先运行emqx docker容器

docker run -d --name emqx emqx/emqx:4.4.19

2、将容器中的emqx的配置copy到本地:

docker cp emqx:/opt/emqx/etc /...本地目录.../emqx
docker cp emqx:/opt/emqx/lib /...本地目录.../emqx
docker cp emqx:/opt/emqx/data /...本地目录.../emqx
docker cp emqx:/opt/emqx/log /...本地目录.../emqx

3、设置emqx、配置內置账号

修改/...本地目录.../emqx/etc/emqx.conf

找到 allow_anonymous = true 改为allow_anonymous = false,禁用匿名连接
配置Mnesia账户
修改/...本地目录.../emqx/etc/plugins/emqx_auth_mnesia.conf,配置认证账号

 

4、修改本地目录权限

$ chown -R 1000:1000 /...本地目录.../emqx/
$ chmod -R 755 /...本地目录.../emqx/

 

5、重新运行容器并挂载目录

停止并删除之前的容器,使用一下配置重启开始容器。

version: "3.8"
services:
  emqx:
    image: emqx/emqx:4.4.19
    restart: always
    container_name: emqx
    environment:
      EMQX_ADMIN_PASSWORD: xxxx@qq.com
      TZ: Asia/Shanghai
    networks:
      - base-net
    volumes:
      - /...本地目录.../etc:/opt/emqx/etc
      - /...本地目录.../data:/opt/emqx/data
      - /...本地目录.../lib:/opt/emqx/lib
      - /...本地目录.../log:/opt/emqx/log

networks:
  base-net:
    external: true
docker-compose up -d

 

参考文章:

https://juejin.cn/post/7248412998577668152

https://www.cnblogs.com/virtulreal/p/14431704.html

posted @ 2024-03-08 13:49  DW039  阅读(889)  评论(0编辑  收藏  举报