docker部署activemq需选镜像、映射端口、持久化数据并配置安全;推荐rmohr/activemq(轻量开发)和webcenter/activemq(生产多协议);单节点用docker run快速启动,生产环境需挂载目录、设认证、加重启策略;docker compose更易管理多协议与卷。

在Docker中部署ActiveMQ很直接,关键在于镜像选择、端口映射、数据持久化和基础安全配置。不需要编译源码,也不用手动装Java环境,官方或社区维护的镜像已封装完整运行时。
选对镜像并拉取
推荐两个稳定可用的镜像源:
- rmohr/activemq:轻量、更新勤快,适合开发与测试,Alpine基础镜像体积小
- webcenter/activemq:功能完整,支持更多协议(如STOMP、MQTT),适合生产预演
执行命令拉取:
docker pull rmohr/activemq:latest单节点快速启动(开发常用)
不挂载目录、不设密码,5秒跑起来用于本地验证:
docker run -d --name activemq -p 8161:8161 -p 61616:61616 rmohr/activemq:latest访问 http://localhost:8161,默认用户名密码都是 admin。
注意:此方式数据随容器销毁而丢失,仅限临时调试。
生产就绪型部署(带持久化+认证)
创建宿主机目录保存数据和日志:
mkdir -p /opt/activemq/{data,log}chmod 777 /opt/activemq/data /opt/activemq/log
运行带参数的容器:
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/log:/opt/activemq/logs \
--restart=unless-stopped \
rmohr/activemq:latest
说明:
- -e 设置管理后台登录凭证,避免默认弱口令
- -v 挂载确保消息存储、KahaDB索引、日志不丢
- --restart=unless-stopped 保证宿主机重启后自动恢复服务
用 Docker Compose 管理更清晰
新建 docker-compose.yml:
version: '3.8'services:
activemq:
image: rmohr/activemq:latest
container_name: activemq
ports:
- "8161:8161"
- "61616:61616"
- "5672:5672" # AMQP
environment:
- ACTIVEMQ_USER=admin
- ACTIVEMQ_PASSWORD=MyPass123!
volumes:
- activemq-data:/opt/activemq/data
restart: unless-stopped
volumes:
activemq-data:
执行启动:
docker-compose up -d优势:配置集中、多协议开箱即用、卷自动创建、便于后续扩缩容或加监控。










