如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Apache ActiveMQ Artemis是一个开源项目,旨在构建多协议、可嵌入、高性能、集群化的异步消息系统,是面向消息的中间件(MoM)的典型示例。
https://activemq.apache.org/artemis/index.html
ActiveMQ Artemis守护进程可通过以下命令运行:
console$ docker run -d alexcheng/activemq-artemis
几秒后,运行docker logs some-thing(其中some-thing是Docker为实例分配的名称),您将在输出中看到类似以下的块:
_ _ _ / \ ____| |_ ___ __ __(_) _____ / _ \| _ \ __|/ _ \ \/ | |/ __/ / ___ \ | \/ |_/ __/ |\/| | |\___ \ /_/ \_\| \__\____|_| |_|_|/___ / Apache ActiveMQ Artemis 1.1.0 HH:mm:ss,SSS INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ***: Starting ActiveMQ Artemis Server ...(省略部分日志)... HTTP Server started at [***]
默认情况下,Artemis使用最小512MB、最大2048MB的内存。您可以通过ARTEMIS_MIN_MEMORY和ARTEMIS_MAX_MEMORY参数设置应用所需的内存:
console$ docker run -d -e 'ARTEMIS_MIN_MEMORY=1512M' -e 'ARTEMIS_MAX_MEMORY=3048M' alexcheng/activemq-artemis
上述示例将启动内存最小为1512MB、最大为3048MB的Apache ActiveMQ Artemis容器。参数格式与Java -Xms和-Xmx参数相同,详见http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html。
如果您希望更改默认的用户名artemis和密码simetraehcapa,可以使用ARTEMIS_USERNAME和ARTEMIS_PASSWORD环境变量:
console$ docker run -d -e ARTEMIS_USERNAME=myuser -e ARTEMIS_PASSWORD=otherpassword alexcheng/activemq-artemis
由于JMX的特性(如RMI动态端口和需要配置公共IP),不建议在Docker中使用JMX。但在某些场景下(如容器编排平台Kubernetes或Mesos中与sidecar容器一起部署),可以启用JMX。此时可使用环境变量ENABLE_JMX,并通过JMX_PORT(默认1099)和JMX_RMI_PORT(默认1098)设置端口。JMX仅绑定到localhost且不使用SSL保护,端口未在Dockerfile中声明。
console$ docker run -d -e ENABLE_JMX=true -e JMX_PORT=1199 -e JMX_RMI_PORT=1198 alexcheng/activemq-artemis
不同类型的卷需要不同的调优值。您可以使用环境变量ARTEMIS_PERF_JOURNAL计算并应用合适的journal-buffer-timeout值,可选值如下:
| 值 | 描述 |
|---|---|
AUTO | 检查数据卷中是否存在.perf-journal-completed文件,不存在则计算并应用配置,创建该文件 |
NEVER(默认) | 从不执行性能日志配置 |
ALWAYS | 总是执行性能日志配置 |
建议在非手动配置的容器中设置为AUTO,但由于此镜像常用于快速测试和非生产环境,默认值为NEVER。
console$ docker run -d -e ARTEMIS_PERF_JOURNAL=AUTO alexcheng/activemq-artemis
此选项自版本1.5.3起可用。
您可以将整个Artemis etc目录挂载到容器的/var/lib/artemis/etc卷,但对于仅需小调整的场景,可使用/var/lib/artemis/etc-override目录。
将包含配置片段的文件放入etc-override目录,文件名需遵循broker-{{desc}}.xml格式(desc为数字)。这些文件将与默认配置合并,按文件名字母顺序优先,冲突时以最后更改为准。例如,添加diverts部分:
在本地目录/var/artemis-data/etc-override中创建broker-00.xml:
xml<?xml version="1.0" encoding="UTF-8" standalone="no"?> <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd"> <core xmlns="urn:activemq:core"> <diverts> <divert name="order-divert"> <routing-name>order-divert</routing-name> <address>orders</address> <forwarding-address>spyTopic</forwarding-address> <exclusive>false</exclusive> </divert> </diverts> </core> </configuration>
若需覆盖而非合并配置,可在/var/lib/artemis/etc-override中创建broker-00.xslt文件。例如,覆盖jms定义:
broker.xml:
xml<?xml version="1.0" encoding="UTF-8" standalone="no"?> <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd"> <jms xmlns="urn:activemq:jms"> <queue name="myfancyqueue"/> <queue name="myotherqueue"/> </jms> </configuration>
broker-00.xslt:
xslt<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:activemq="urn:activemq" xmlns:jms="urn:activemq:jms"> <xsl:output omit-xml-declaration="yes"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="*[local-name()='jms']"/> </xsl:stylesheet>
若要查看转换后的最终配置,执行:
consoledocker run -v /var/artemis-data/override:/var/lib/artemis/etc-override -it --rm docker.xuanyuan.run/alexcheng/activemq-artemis cat ../etc/broker.xml
| 挂载点 | 描述 |
|---|---|
/var/lib/artemis/data | 存储持久化消息的数据文件 |
/var/lib/artemis/etc | 实例配置文件 |
/var/lib/artemis/etc-override | 配置覆盖文件 |
| 端口 | 描述 |
|---|---|
8161 | Web服务器(自2.3.0版本起,/console路径提供控制台,使用ARTEMIS_USERNAME和ARTEMIS_PASSWORD登录) |
61616 | 支持协议:CORE、MQTT、AMQP、HORNETQ、STOMP、Openwire |
5445 | 支持协议:HORNETQ、STOMP |
5672 | 支持协议:AMQP |
1883 | 支持协议:MQTT |
61613 | 支持协议:STOMP |
查看此镜像中软件的http://www.apache.org/licenses/LICENSE-2.0。
此镜像官方支持Docker版本1.8.2。旧版本(低至1.0)将尽力支持。
若对镜像有任何问题或疑问,请通过https://github.com/vromero/activemq-artemis-docker/issues联系我们。
欢迎贡献新功能、修复或更新(无论大小)。我们始终欢迎拉取请求,并尽力快速处理。在开始编码前,建议通过https://github.com/vromero/activemq-artemis-docker/issues讨论您的计划,尤其是更复杂的贡献,这有助于其他贡献者提供指导、反馈或避免重复工作。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 alexcheng/activemq-artemis 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: