Activemq Artemis Docker 镜像
自动构建
Apache ActiveMQ Artemis是高性能企业级消息代理,支持JMS 2.0等标准协议,适用于异步通信、系统集成及分布式应用间的可靠消息传递。
Apache ActiveMQ Artemis Docker镜像文档
1. 镜像概述与主要用途
Apache ActiveMQ Artemis 是一款开源、多协议、基于 Java 的高性能消息代理(Message Broker),属于 Apache ActiveMQ 项目的下一代实现。它提供可靠的异步消息传递能力,支持多种工业标准协议,旨在连接跨语言、跨平台的应用系统,实现松耦合的系统集成与通信。
主要用途:
- 作为分布式系统的消息中枢,实现应用间异步通信
- 解耦系统组件,提高架构弹性与可扩展性
- 支持高并发场景下的消息缓冲与流量控制
- 提供消息持久化与事务支持,确保数据可靠性
2. 核心功能与特性
2.1 多协议支持
- JMS:兼容 Java 消息服务规范,支持队列(Queue)、主题(Topic)等消息模型
- AMQP:支持高级消息队列协议,适配跨平台集成需求
- STOMP:支持简单文本定向消息协议,适用于 Web 应用通过 WebSocket 通信
- MQTT:支持消息队列遥测传输协议,适用于物联网(IoT)设备通信
2.2 多语言客户端兼容
支持 JavaScript、C、C++、Python、.NET 等多种语言编写的客户端接入,降低跨技术栈集成门槛。
2.3 高可靠性与性能
- 支持消息持久化(基于文件或数据库),防止数据丢失
- 提供集群部署能力,支持主从复制、负载均衡与故障转移
- 低延迟消息处理,适配高吞吐量场景
2.4 灵活的部署与管理
- 轻量级设计,支持嵌入式与独立部署
- 提供 Web 管理控制台与命令行工具,简化配置与监控
3. 使用场景与适用范围
3.1 企业级系统集成
- 连接 ERP、CRM 等核心业务系统,实现数据异步同步
- 支持事务消息,确保跨系统操作的一致性
3.2 微服务架构通信
- 作为微服务间的通信枢纽,通过消息解耦服务依赖
- 支持发布/订阅(Pub/Sub)与点对点(Point-to-Point)通信模式
3.3 物联网(IoT)设备管理
- 通过 MQTT 协议连接海量 IoT 设备,高效处理传感器数据上报与指令下发
3.4 Web 应用实时通信
- 通过 STOMP+WebSocket 实现 Web 前端与后端的实时消息推送(如聊天、通知)
3.5 遗留系统现代化
- 基于 JMS 协议兼容传统 Java 应用,支持平滑迁移至云原生架构
4. 使用方法与配置说明
4.1 基本 Docker 部署(docker run)
通过以下命令快速启动单节点实例,包含默认配置与管理账户:
bashdocker run -d \ --name activemq-artemis \ -p 8161:8161 \ # Web管理控制台端口 -p 61616:61616 \ # JMS协议端口 -p 5672:5672 \ # AMQP协议端口 -p 61613:61613 \ # STOMP协议端口 -p 1883:1883 \ # MQTT协议端口 -e ARTEMIS_USER=admin \ # 管理账户用户名 -e ARTEMIS_PASSWORD=admin \ # 管理账户密码 -v artemis-data:/var/lib/artemis-instance/data \ # 持久化数据卷 apache/activemq-artemis
参数说明:
-p:端口映射,暴露管理控制台与各协议端口-e:环境变量,配置管理员账户(默认账户需显式设置,避免安全风险)-v:挂载数据卷,持久化消息数据(避免容器重启后数据丢失)
4.2 Docker Compose 部署
创建 docker-compose.yml 文件,配置多实例或集成其他服务:
yamlversion: '3.8' services: activemq-artemis: image: docker.xuanyuan.run/apache/activemq-artemis container_name: activemq-artemis ports: - "8161:8161" # Web管理控制台 - "61616:61616" # JMS - "5672:5672" # AMQP - "61613:61613" # STOMP - "1883:1883" # MQTT environment: - ARTEMIS_USER=admin - ARTEMIS_PASSWORD=SecurePass123! # 建议使用强密码 - ARTEMIS_MIN_MEM=512M # JVM最小内存 - ARTEMIS_MAX_MEM=1G # JVM最大内存 volumes: - artemis-data:/var/lib/artemis-instance/data - ./config:/var/lib/artemis-instance/etc # 挂载自定义配置文件(可选) restart: unless-stopped volumes: artemis-data: # 持久化卷定义
启动命令:
bashdocker-compose up -d
4.3 核心配置参数
4.3.1 环境变量
| 环境变量 | 说明 | 默认值 |
|---|---|---|
ARTEMIS_USER | 管理控制台登录用户名 | 无(需显式设置) |
ARTEMIS_PASSWORD | 管理控制台登录密码 | 无(需显式设置) |
ARTEMIS_MIN_MEM | JVM 初始内存(如 512M) | 512M |
ARTEMIS_MAX_MEM | JVM 最大内存(如 1G) | 1G |
ARTEMIS_INSTANCE | 实例名称 | broker |
4.3.2 常用端口
| 端口 | 用途 | 协议类型 |
|---|---|---|
| 8161 | Web 管理控制台 | HTTP |
| 61616 | JMS 客户端连接 | TCP(JMS) |
| 5672 | AMQP 客户端连接 | AMQP |
| 61613 | STOMP 客户端连接 | STOMP |
| 1883 | MQTT 客户端连接 | MQTT |
4.4 管理控制台访问
启动后,通过 http://<主机IP>:8161 访问管理控制台,使用 ARTEMIS_USER 和 ARTEMIS_PASSWORD 登录,可查看队列/主题状态、消息统计、客户端连接等信息。
5. 构建与扩展信息
5.1 镜像构建脚本
Docker 镜像构建脚本开源托管于 GitHub:
https://github.com/apache/activemq-artemis/tree/main/artemis-docker
5.2 自定义配置
如需修改 broker 配置(如消息策略、网络连接、安全设置),可通过以下方式:
- 挂载本地配置目录至容器内
/var/lib/artemis-instance/etc(覆盖默认配置文件) - 基于官方镜像构建自定义镜像,嵌入修改后的配置
6. 注意事项
- 安全建议:生产环境中需使用强密码(
ARTEMIS_PASSWORD),并限制管理控制台访问来源(如通过防火墙或反向代理配置访问控制)。 - 持久化:务必挂载数据卷(
/var/lib/artemis-instance/data),避免容器删除导致消息丢失。 - 集群部署:多节点集群需配置网络连接与发现机制(如基于 DNS 或 JDBC 的集群发现),详情参考官方文档。
- 版本选择:建议使用官方镜像的稳定版本标签(如
apache/activemq-artemis:2.31.2),避免使用latest标签导致版本不可控。
更多详细说明:请参考官方 Docker 文档
https://activemq.apache.org/components/artemis/documentation/latest/docker.html
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 activemq-artemis 镜像标签
docker pull docker.xuanyuan.run/apache/activemq-artemis:<标签>
DockerHub 原生拉取命令
docker pull apache/activemq-artemis:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务