docker容器配置activemq
activmq简介
- Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。
- 支持Java消息服务(JMS) 1.1 版本
1、Spring Framework
2、集群 (Clustering)
2、支持的编程语言包括:C、C++、C#、Delphi、Erlang、Adobe Flash、Haskell、Java、JavaScript、Perl、PHP、Pike、Python和Ruby
3、协议支持包括:OpenWire、REST、STOMP、WS-Notification、MQTT、XMPP以及AMQP - 详细的activmq帮助文档
下载activemq的docker镜像
下载docker镜像时应该在dockerhub上搜索,值得注意的是,你所找的镜像必须支持你将要部署的服务器的操作系统和CPU架构,下面是对应的镜像下载:
操作系统 | CPU架构 | 镜像名称 | 拉取镜像 |
---|---|---|---|
windows | x86_64 | esrahofstede/activemq-nano | docker pull esrahofstede/activemq-nano |
linux | x86_64 | webcenter/activemq | docker pull webcenter/activemq |
linux | arrch | jbtrystram/activemq | docker pull jbtrystram/activemq |
编辑docker-compose-activemq.yml
version: '3'
services:
activemqSerivce:
image: webcenter/activemq
ports:
- 1883:1883
- 61614:61614
- 61613:61613
- 5672:5672
- 61616:61616
- 8162:8161
restart: always
volumes:
- /mnt/activmq/data/activemq:/data/activemq
- /mnt/activmq/log/activemq:/var/log/activemq
deploy:
restart_policy:
condition: on-failure
placement:
constraints: [node.role == manager]
networks:
- default
networks:
default:
external:
name: unreal-network
这里注意:
- 创建volumes中的本地文件挂载目录:
mkdir -p /mnt/activmq/data/activemq/
mkdir -p /mnt/activmq/log/activemq/ - 开启相关的端口(以下是端口对应activmq提供的服务)
端口号 | 服务 |
---|---|
8161 | 可视化管理页面 |
1883 | MQTT(消息队列遥测传输) |
61616 | Java消息服务(Java Message Service) |
61614 | websocket通信协议 |
61613 | STOMP即Simple (or Streaming) Text Orientated Messaging Protocol |
5672 | AMQP,即Advanced Message Queuing Protocol |
启动容器
以Linux为例,启动命令如下
sudo docker stack deploy -c docker-compose-activmq.yml mq
启动后,查看日志sudo docker service logs -f mq_activemqService
连接可视化界面
启动成功后,在浏览器中输入{host}:8161
即可登录,用户名一般是admin
,密码一般是admin
。