当前位置: 首页 > article >正文

Docker实战:EMQX容器化部署与持久化配置全攻略

1. 环境准备与基础概念在开始EMQX的容器化部署之前我们需要先理解几个关键概念。EMQX是一款开源的MQTT消息中间件广泛应用于物联网(IoT)场景。而Docker则是一种轻量级的容器技术能够将应用及其依赖打包成一个标准化的单元。将两者结合可以大大简化部署流程并提高环境一致性。我建议在开始前准备好以下环境一台运行Linux的服务器推荐Ubuntu 20.04或CentOS 7已安装Docker引擎版本20.10基本的命令行操作知识如果你还没有安装Docker可以执行以下命令快速安装# Ubuntu系统 sudo apt-get update sudo apt-get install docker.io -y sudo systemctl enable --now docker # CentOS系统 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io -y sudo systemctl enable --now docker安装完成后建议将当前用户加入docker组避免每次都要使用sudosudo usermod -aG docker $USER newgrp docker2. 镜像获取与目录规划2.1 拉取EMQX镜像EMQX官方提供了Docker镜像我们可以直接拉取最新稳定版docker pull emqx/emqx:latest这里有个小技巧如果你需要特定版本可以指定标签比如emqx/emqx:5.0.3。我建议生产环境使用固定版本而非latest避免意外升级带来的兼容性问题。2.2 创建持久化目录持久化是容器部署的关键环节。我们需要创建三个核心目录mkdir -p /home/emqx/{etc,data,log}解释一下这些目录的作用etc存放EMQX的配置文件包括监听端口、认证配置等data存储运行时数据如MQTT消息、插件数据等log记录运行日志便于问题排查我习惯把这些目录放在/home下你也可以根据实际需求选择其他位置。重要的是确保这些目录不会被误删并且有足够的磁盘空间。3. 初始配置与文件提取3.1 启动临时容器为了获取默认配置文件我们先启动一个临时容器docker run -d --name emqx-temp \ -p 1883:1883 -p 8083:8083 \ -p 8084:8084 -p 8883:8883 \ -p 18083:18083 \ emqx/emqx:latest这个命令映射了EMQX的常用端口1883MQTT协议默认端口8883MQTT over TLS/SSL8083/8084WebSocket和HTTP API18083管理控制台3.2 复制配置文件容器运行后我们可以将默认配置复制到之前创建的目录docker cp emqx-temp:/opt/emqx/etc /home/emqx/复制完成后记得设置正确的权限chmod -R 777 /home/emqx/{data,etc,log}这里给777权限是为了简化演示生产环境建议设置更严格的权限比如将目录所有者改为特定用户。3.3 清理临时容器配置文件提取完成后就可以移除临时容器了docker stop emqx-temp docker rm emqx-temp4. 正式部署与持久化配置4.1 启动生产容器现在我们可以启动正式的EMQX容器并挂载持久化目录docker run -d --name emqx \ --privilegedtrue \ -p 1883:1883 -p 8083:8083 \ -p 8084:8084 -p 8883:8883 \ -p 18083:18083 \ -v /home/emqx/etc:/opt/emqx/etc \ -v /home/emqx/data:/opt/emqx/data \ -v /home/emqx/log:/opt/emqx/log \ emqx/emqx:latest这里有几个关键点--privilegedtrue给予容器足够的权限避免某些功能受限-v参数将主机目录挂载到容器内部对应位置端口映射确保所有需要的服务端口都已暴露4.2 修改默认密码安全起见第一件事就是修改默认的管理员密码docker exec -it emqx bash -c ./bin/emqx_ctl admins passwd admin 你的新密码EMQX默认的管理员账号是admin/public这个在公网环境下非常危险必须第一时间修改。我建议使用至少12位的复杂密码包含大小写字母、数字和特殊字符。5. 网络与安全配置5.1 防火墙设置如果你的服务器启用了防火墙需要开放相关端口# 对于firewalld firewall-cmd --add-port1883/tcp --add-port8083/tcp \ --add-port8084/tcp --add-port8883/tcp \ --add-port18083/tcp --permanent firewall-cmd --reload # 对于ufw sudo ufw allow 1883/tcp sudo ufw allow 8083/tcp sudo ufw allow 8084/tcp sudo ufw allow 8883/tcp sudo ufw allow 18083/tcp sudo ufw reload5.2 配置文件调优挂载的配置文件位于/home/emqx/etc目录下最重要的两个文件是emqx.conf主配置文件plugins/emqx_auth_mnesia.conf认证插件配置我通常会调整以下参数修改监听地址为特定IP而非0.0.0.0限制最大连接数启用SSL并配置证书设置合理的消息大小限制6. 验证与监控6.1 访问管理控制台部署完成后可以通过浏览器访问管理界面http://你的服务器IP:18083输入修改后的管理员账号密码你应该能看到EMQX的仪表盘。这里可以查看客户端连接数、消息吞吐量等关键指标。6.2 命令行验证也可以通过命令行检查服务状态docker exec -it emqx ./bin/emqx_ctl status如果一切正常你会看到类似EMQX is running!的输出。7. 高级配置与优化7.1 使用docker-compose管理对于生产环境我推荐使用docker-compose来管理容器。创建一个docker-compose.yml文件version: 3 services: emqx: image: emqx/emqx:latest container_name: emqx restart: always privileged: true ports: - 1883:1883 - 8083:8083 - 8084:8084 - 8883:8883 - 18083:18083 volumes: - /home/emqx/etc:/opt/emqx/etc - /home/emqx/data:/opt/emqx/data - /home/emqx/log:/opt/emqx/log然后通过以下命令启动docker-compose up -d这种方式更易于维护和版本控制。7.2 日志管理与轮转EMQX会产生大量日志建议配置日志轮转。修改/home/emqx/etc/log.conflog.to file log.level warning log.file /opt/emqx/log/emqx.log log.rotation.size 100MB log.rotation.count 10这样设置后当日志文件达到100MB时会自动轮转最多保留10个历史文件。8. 常见问题排查在实际部署中我遇到过几个典型问题权限问题如果容器启动失败首先检查挂载目录的权限。可以尝试chown -R 1000:1000 /home/emqxEMQX容器默认以uid 1000运行。端口冲突如果某些端口无法访问检查是否有其他服务占用了相同端口netstat -tulnp | grep 1883配置文件错误修改配置后需要重启容器生效docker restart emqx内存不足EMQX对内存要求较高如果发现容器频繁重启可以增加内存限制docker update --memory 2G --memory-swap 4G emqx通过这套完整的容器化部署方案你可以获得一个稳定、可持久化的EMQX消息中间件环境。我在多个生产项目中采用这种部署方式即使服务器重启或容器迁移所有配置和数据都能完好保留。

相关文章:

Docker实战:EMQX容器化部署与持久化配置全攻略

1. 环境准备与基础概念 在开始EMQX的容器化部署之前,我们需要先理解几个关键概念。EMQX是一款开源的MQTT消息中间件,广泛应用于物联网(IoT)场景。而Docker则是一种轻量级的容器技术,能够将应用及其依赖打包成一个标准化的单元。将两者结合&am…...

告别许愿式提问!收藏这份结构化提示词指南,带你玩转大模型智能体设计

文章指出,许多人使用大模型时效果不佳是因为采用了“许愿式”方法,未能清晰传达意图。核心方法论在于拥抱结构化提示词,如CRISPE框架,并通过五大组件(提示词、记忆系统、插件/工具、知识库、工作流)构建AI智…...

终极指南:快速绘制专业神经网络架构图的完整工具库

终极指南:快速绘制专业神经网络架构图的完整工具库 【免费下载链接】Neural-Network-Architecture-Diagrams Diagrams for visualizing neural network architecture (Created with diagrams.net) 项目地址: https://gitcode.com/gh_mirrors/ne/Neural-Network-Ar…...

Trinity v2.15.2的安装与配置经验

安装Trinity v2.15.2,我先按照常规方法用conda安装在统一的环境中,然后又安装了ai推荐的适配软件。安装时出现 Preparing transaction: done Verifying transaction: / …...

【openwrt】优化Openwrt软路由的web端口配置:安全与便捷并重

1. 为什么需要优化OpenWrt的Web端口配置 家里用软路由的朋友们应该都遇到过这样的场景:当你兴冲冲地打开浏览器准备配置路由器时,却发现页面死活打不开。这种情况很多时候都是因为端口冲突导致的。OpenWrt默认使用80端口提供Web管理界面,但这…...

【亲测】2026年3月OpenClaw零基础6分钟云端/MacOS/Linux/Windows部署教程

【亲测】2026年3月OpenClaw零基础6分钟云端/MacOS/Linux/Windows部署教程。OpenClaw是什么?OpenClaw能做什么?OpenClaw怎么部署?OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借724小…...

CKEditor如何实现Word文档到网页的无格式错乱粘贴?

PHP程序员的Word导入插件探索记 各位老铁们好啊!我是西安一名苦逼的PHP程序员,最近接了个CMS企业官网的活儿,客户突然甩给我个需求,让我整个人都不好了… 客户的"小"需求 客户说:“小王啊,我们…...

告别重复配置:打造VS2022+EasyX项目专属便携开发包

1. 为什么需要便携式开发包? 每次在新电脑上配置开发环境都像是一场噩梦。我记得刚开始用EasyX做图形编程时,每次换电脑都要重新下载库文件、配置包含路径、设置库目录,一套流程下来至少浪费半小时。更糟的是团队协作时,每个成员都…...

手把手教你用yz-bijini-cosplay:从安装到出图,小白也能5分钟搞定Cosplay AI创作

手把手教你用yz-bijini-cosplay:从安装到出图,小白也能5分钟搞定Cosplay AI创作 想用AI生成专业级Cosplay图片却苦于复杂的安装流程?厌倦了每次切换风格都要漫长等待?今天介绍的yz-bijini-cosplay镜像将彻底改变你的创作体验。这…...

告别爆显存!Bidili Generator保姆级教程:SDXL模型一键部署,轻松生成定制图片

告别爆显存!Bidili Generator保姆级教程:SDXL模型一键部署,轻松生成定制图片 如果你对AI绘画感兴趣,一定听说过Stable Diffusion XL(SDXL)的大名。它生成的图片质量确实惊艳,细节丰富&#xff…...

3.1811111drfva

...

为什么电阻分压给MCU供电不靠谱?实测数据告诉你真相

为什么电阻分压给MCU供电不靠谱?实测数据告诉你真相 在电子设计初学者的世界里,电源转换常常被视为"黑箱操作"——直到某天你发现用两个电阻搭建的分压电路给单片机供电时,程序开始随机崩溃,屏幕闪烁不定。这背后隐藏着…...

低空经济赛道——深圳低空经济发展规划

摘要 深圳规划2026年建成1200个起降点,配套5G-A基站8000个,预计带动物流、文旅产业规模增长30%。本文分析了深圳低空经济规划的整体布局、基础设施建设和产业发展前景。规划概述 1. 总体目标 深圳低空经济规划2026目标: ┌───────────────…...

CasRel关系抽取实战案例:智能问答系统底层结构化数据生成方法

CasRel关系抽取实战案例:智能问答系统底层结构化数据生成方法 1. 从文本到知识:为什么需要关系抽取? 想象一下,你正在搭建一个智能问答系统。用户问:“苹果公司的创始人是谁?” 系统需要理解“苹果公司”…...

SenseVoice-Small语音识别模型ONNX量化部署教程:3步快速上手

SenseVoice-Small语音识别模型ONNX量化部署教程:3步快速上手 语音识别技术正在变得越来越普及,从手机助手到会议纪要,再到智能家居,到处都能看到它的身影。但对于开发者来说,想把一个效果不错的语音识别模型集成到自己…...

AnimateDiff与3D引擎结合:混合现实内容生产

AnimateDiff与3D引擎结合:混合现实内容生产 1. 引言 想象一下,你正在为一个虚拟展览设计互动内容,需要快速生成一段展示产品特性的动画视频。传统方式需要设计师手动制作每一帧,耗时耗力。而现在,通过AnimateDiff与3…...

专业的上海烘焙培训哪家好

对于希望学习烘焙技术的朋友,上海作为国内西点烘焙行业较为活跃的城市,提供了不少培训选择。在考虑培训机构时,建议您从以下几个方面进行综合评估:考察培训机构的几个要点:课程体系与产品更新:了解课程内容…...

立知-lychee-rerank-mm模型版本迁移指南

立知-lychee-rerank-mm模型版本迁移指南 模型升级不用慌,这份指南帮你平稳过渡 最近立知-lychee-rerank-mm发布了新版本,很多用户都在问:怎么升级才能不影响现有业务?数据会不会丢失?万一出问题能回滚吗? …...

感应异步电机无传感器矢量控制的完整C代码+仿真模型:基于电压模型+电流模型的磁链观测器实现

感应异步电机的无传感器矢量控制,完整的C代码仿真模型: 1. 基于“电压模型电流模型”的磁链观测器,实现转子磁场定向控制(FOC),可实现电机在低速、中高速段的高精度的转速估算; 代码已经成功移植…...

BERT文本分割-中文-通用领域多任务适配:支持会议/访谈/教学等多场景

BERT文本分割-中文-通用领域多任务适配:支持会议/访谈/教学等多场景 1. 引言:为什么需要智能文本分割 在日常工作和学习中,我们经常会遇到这样的情况:参加完一场重要的会议,拿到了一份长达数小时的录音转文字稿&…...

主机发现与信息收集

主机发现与信息收集 比赛题库-主机发现与信息收集 文章目录主机发现与信息收集比赛题库-主机发现与信息收集前言一、解题过程1.通过渗透机Kali2.0对靶机场景进行秘密FIN扫描 (使用Nmap工具),并将该操作使用命令中必须要使用的参数作为Flag值提交:2.通过…...

不用熬夜赶论文!毕业之家AI太省心了

“毕业之家” (biye.com) 工具,并与之前推荐的通用工具做个对比,帮你判断它是否真的省心。 🧐 “毕业之家” 功能与特点分析 这个网站主打的是一站式、全流程的AI学术辅助,核心特点非常明确: 全流程覆盖:…...

embeddinggemma-300m部署教程:ollama镜像免配置+WebUI多用户会话隔离配置

embeddinggemma-300m部署教程:ollama镜像免配置WebUI多用户会话隔离配置 想快速搭建一个属于自己的文本向量化服务吗?今天给大家分享一个超级简单的部署方案——使用Ollama一键部署embeddinggemma-300m模型,再配上WebUI界面,还能…...

佛系编程:软件测试从业者的智慧之路

在当今快节奏的软件开发环境中,软件测试从业者常面临高压挑战:紧迫的deadline、反复的回归测试、无休止的缺陷修复,以及“零缺陷”理想与现实的巨大落差,这些因素易引发焦虑和职业倦怠(burnout),影响测试质量和职业幸福…...

PyTorch 2.9环境搭建:镜像源选择与永久配置方法详解

PyTorch 2.9环境搭建:镜像源选择与永久配置方法详解 1. PyTorch 2.9环境搭建痛点分析 深度学习环境的搭建一直是开发者面临的第一道门槛,尤其是对于PyTorch这样的大型框架。PyTorch 2.9版本发布后,许多开发者在环境搭建过程中遇到了以下典型…...

Linux服务器磁盘占用分析和清理

话不多说,直接上代码一、问题分析与诊断1. 查看整体磁盘使用情况代码语言:javascriptAI代码解释# 查看所有挂载点的磁盘使用情况 df -h# 以更易读的方式显示,按使用率排序 df -hT | sort -k6 -rh# 查看inode使用情况(有时文件数太…...

FLUX.1-dev-fp8-dit与计算机网络:网络拓扑图自动生成系统

FLUX.1-dev-fp8-dit与计算机网络:网络拓扑图自动生成系统 1. 引言 网络工程师每天都要面对复杂的网络设计和维护工作,其中绘制网络拓扑图是最基础也最耗时的一项任务。传统的绘图工具需要手动拖拽设备图标、连接线路、标注信息,一个中等规模…...

【实战指南】Python常见语法错误排查与修复手册

1. Python语法错误排查入门指南 刚接触Python编程时,最让人头疼的就是各种莫名其妙的语法错误。记得我刚开始写代码那会儿,经常因为一个简单的括号问题调试半天。Python虽然以语法简洁著称,但正因为它的语法规则相对严格,一些细微…...

n8n 中设置 The Web MCP 结合deepseek构建智能数据采集机器人

n8n 中设置 The Web MCP 结合deepseek 除了视频中提到的亮数据MCP搭建工作流,现在亮数据还有新活动,通过链接注册就送25刀,适用于所用产品,感兴趣的小伙伴快点击吧!亮数据地址: https://www.bright.cn/ai/…...

THU-PPT-Theme:3大核心优势助你5分钟打造符合清华规范的专业演示文稿

THU-PPT-Theme:3大核心优势助你5分钟打造符合清华规范的专业演示文稿 【免费下载链接】THU-PPT-Theme 项目地址: https://gitcode.com/gh_mirrors/th/THU-PPT-Theme 你是否曾遇到这样的困境:花费数小时设计PPT却仍达不到学术规范?使用…...