docker search rabbitmq

docker pull rabbitmq:3.8.1-management

安装带管理端的docker容器

docker run -d --hostname rabbitmq --name rabbitmq -v /home/mydata/rabbitmq/data:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' rabbitmq:3.8.1-management

上面只是把数据文件放在外面,不做任何操作是可以正常的

建/home/mydata/rabbitmq 下面data,conf,log对应数据,配置与日志

useradd rabbitmq

chown rabbitmq:rabbitmq -R rabbitmq/ 把下面目录都变成rabbitmq用户

docker run -d --hostname rabbitmq --name rabbitmq -v /home/mydata/rabbitmq/data:/var/lib/rabbitmq -v /home/mydata/rabbitmq/conf:/etc/rabbitmq/ -v /home/mydata/rabbitmq/log:/var/log/rabbitmq/ -p 15672:15672 -p 5672:5672 -p 1883:1883 -p 15675:15675 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' rabbitmq:3.8.1-management

上面开始有问题,老说是config文件没有权限

[root@zxg mydata]# docker logs rabbitmq

touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Permission denied

docker cp -a rabbitmq:/etc/rabbitmq .

并用mv方式移动合适目录下

把配置文件拷贝到宿主就可以了,没有报错,正常了

  • 15672 是rabbitmq management管理界面默认访问端口
  • 5672 是amqp默认端口
  • 1883 是mqtt tcp协议默认端口
  • 15675 是web_mqtt ws协议默认端口

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_management

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_mqtt

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_web_mqtt

也可以人工启动这些插件

配置防火墙

firewall-cmd --add-port=15672/tcp --permanent

firewall-cmd --add-port=5672/tcp --permanent

firewall-cmd --add-port=1883/tcp --permanent

firewall-cmd --add-port=15675/tcp --permanent

firewall-cmd --reload

firewall-cmd --list-all

进入rabbitmq管理页面,初始用户guest密码是guest

MQTT.fx可以测试MQTT

支持windows/linux/mac,请选择对应的版本进行安装,本例以Windows10为例,版本为1.7.1 。

下载地址: