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:latestcontainer_name: activemqports:- "8161:8161"- "61616:61616"- "5672:5672" # AMQPenvironment:- ACTIVEMQ_USER=admin- ACTIVEMQ_PASSWORD=MyPass123!volumes:- activemq-data:/opt/activemq/datarestart: unless-stoppedvolumes:activemq-data:
执行启动:
docker-compose up -d优势:配置集中、多协议开箱即用、卷自动创建、便于后续扩缩容或加监控。
