RabbitMQ的优点
- 可靠性
- 灵活的路由
- 集群
- 联合
- 高可用的队列
- 多协议
- 广泛的客户端
- 可视化管理工具
- 追踪
- 插件系统
等等,有兴趣可以翻看它的1. 安装RabbitMQ
执行docker命令拉取镜像: docker pull rabbitmq:management
执行docker启动镜像命令:
docker run
-d --name rabbitmq
-p 5672:5672
-p 15672:15672
-v ‘pwd’ /data:/var/lib/rabbitmq --hostname myRabbit
-e RABBITMQ_DEFAULT_VHOST=my_vhost
-e RABBITMQ_DEFAULT_USER=admin
-e RABBITMQ_DEFAULT_PASS=admin
8620eca13d67
说明:
-d 后台运行容器;
–name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
–hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
8620eca13d67为镜像ID
查看容器运行状态: docker ps -a
STATUS列为Up xxx为正常运行状态
这时基本可以通过外网访问RabbitMQ的web界面了。
但是我的不能访问!!!因为我是vmware安装的centOS7,在虚拟机中装的docker,然后在docker中装的RabbitMQ;使用curl在虚拟机中访问mq的web页面是可以返回页面代码的,所以我猜测应该是网络转发出的问题;
网上翻文章找到答案,
记录一下:
- 拉取镜像为latest版本,这本版本没有web界面的插件。使用docker exec -it rabbit rabbitmq-plugins enable rabbitmq_management来为它安装web界面并启动;
- vim /etc/sysctl.conf 添加 net.ipv4.ip_forward=1
重启network服务:systemctl restart network
获取修改:sysctl net.ipv4.ip_forward ,返回“net.ipv4.ip_forward = 1”为修改成功。
我是第二种办法解决的。至此已经成功访问到web页面。