基于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
作者:DW039
出处:http://www.cnblogs.com/dw039
本文由DW039原创并发布于博客园,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。