Docker部署ActiveMQ需选官方或活跃镜像(如apache/activemq-classic:5.18.0或apache/activemq-artemis),暴露8161和61616端口,挂载data/logs目录持久化,设ACTIVEMQ_ADMIN_LOGIN/PASSWORD加强安全,推荐用Docker Compose统一管理。

在Docker中部署ActiveMQ,核心是选对镜像、暴露必要端口、持久化数据、设置基础安全,并根据场景选择启动方式。不需要装Java、不编译源码,官方或成熟社区镜像已封装完整运行时。
优先选用官方或活跃维护的镜像
别只看下载量,重点看更新频率和基础系统:
- 新项目推荐 apache/activemq-artemis:ActiveMQ下一代产品,性能更好、协议更全(AMQP/MQTT/STOMP原生支持),Docker Hub上持续更新
- 兼容老系统选 apache/activemq-classic:5.18.0(勿用 latest):官方维护,比 webcenter/activemq(三年未更新)更安全可靠
- 开发测试可用 rmohr/activemq:5.15.9-alpine:体积小(约170MB)、启动快,适合本地验证
快速验证:单命令启动(仅限开发)
5秒跑起来看管理界面,但数据不持久、无认证:
docker run -d \ --name activemq \ -p 8161:8161 \ -p 61616:61616 \ apache/activemq-classic:5.18.0
访问 http://localhost:8161,默认账号密码均为 admin。容器删除后所有消息和配置即丢失。
生产可用:挂载+认证+自启
三步到位,保障服务稳定与数据安全:
- 创建宿主机目录并赋权:
mkdir -p /opt/activemq/{data,logs}chmod 777 /opt/activemq/data /opt/activemq/logs - 运行带参数的容器:
docker run -d \--name activemq \-p 8161:8161 -p 61616:61616 \-e ACTIVEMQ_ADMIN_LOGIN=admin \-e ACTIVEMQ_ADMIN_PASSWORD=MyPass123! \-v /opt/activemq/data:/opt/activemq/data \-v /opt/activemq/logs:/opt/activemq/logs \--restart=unless-stopped \apache/activemq-classic:5.18.0 - 关键点说明:
•-e避免默认弱口令
•-v挂载确保 KahaDB 存储和日志可保留
•--restart实现宿主机重启后自动恢复
推荐用 Docker Compose 统一管理
配置清晰、多协议开箱即用、卷自动创建,适合后续加监控或扩缩容:
version: '3.8'
services:
activemq:
image: apache/activemq-classic:5.18.0
container_name: activemq
ports:
- "8161:8161" # Web 控制台
- "61616:61616" # OpenWire (JMS)
- "5672:5672" # AMQP(如需)
environment:
- ACTIVEMQ_ADMIN_LOGIN=admin
- ACTIVEMQ_ADMIN_PASSWORD=MyPass123!
volumes:
- activemq-data:/opt/activemq/data
- ./conf:/opt/activemq/conf # 如需自定义配置,挂载 conf 目录
restart: unless-stopped
<p>volumes:
activemq-data:执行 docker-compose up -d 即可启动。自定义配置时,把修改后的 activemq.xml 放入本地 ./conf 目录即可生效。


















