部署:
查看镜像文件:docker search rabbitmq
拉取镜像:(注意:这里需要配置国内镜像源,不然很慢)
下面二选一拉取镜像:
docker pull rabbitmq #拉取进行镜像
或
docker pull rabbitmq:3.8.14 #拉取指定版本镜像
查看镜像:docker images
启动:(注意:如果是需要使用MQTT协议,一定要开启1883端口和MQTT插件)
docker run -d --name rabbitmq -v /usr/local/rabbitmq:/etc/rabbitmq -p 15672:15672 -p 5672:5672 -p 1883:1883 --restart=always rabbitmq:latest
参数说明:
-d :表示作为守护进程在后台运行;
–name:容器命名为rabbitmq;
-p:表示端口映射,<宿主机端口>:<容器端口>,这里开启了15672、5672和1883端口映射,1883是rabbitmq的MQTT服务默认端口号;
-v:将容器中的目录挂载到宿主机上,<宿主机>:<容器>
–restart=always:设置容器自动启动
最后的rabbitmq:版本号,表示构建使用的镜像
查看容器是否启动成功:
docker ps
访问:
1.关闭防火墙,或者开放对应端口,否者会报404
2.然后使用CMD命令窗口,检查端口是否通信正常(自己ip,port)
3.浏览器访问客户端页面
如果上面端口可以通信,但是浏览器确加载不了登陆页面,需要检查客户端页面插件是否开启
开启插件:首先使用命令进入容器
docker exec -it 容器名称 bash #进入容器
rabbitmq-plugins enable rabbitmq_management #开启插件
如果输入账号密码后显示不是私密连接(原因:账号密码错误,默认账户密码都是 guest)
使用guest账号密码登录爆user can only log in via localhost 出现下面画面(原因:需要创建新用户,guest用户子允许localhost访问)
创建新用户:(以下命令需要进入容器执行)
创建用户:rabbitmqctl add_user Username Password (自己的账号密码)
查看当前用户列表 :rabbitmqctl list_users
设定角色:rabbitmqctl set_user_tags Username administrator (设定管理员权限)
然后在使用你新创建的用户访问基本就能成功
登录成功后记得给当前用户设定权限:
(上面是AMQP协议)如果你需要使用MQTT协议,则需要在开始MQTT协议插件,不然连接不成功
开启MQTT协议插件命令(需要进入容器执行命令)
进入容器: docker exec -it 容器id /bin/bash
开启插件:rabbitmq-plugins enable rabbitmq_management rabbitmq_mqtt
注意:一定要开启1883端口,因为MQTT默认端口是1883,不然很有可能连接失败,开始后使用MQTTX工具进行测试连接
最后就可以访问成功了,代码也可以成功连接