docker安装rabbitmq及遇到的问题
流水不争先
安装步骤
- docker环境准备:
- 安装docker:
yum install docker
注:linux安装docker 内核必须是3.10版本以上
- 查看内核版本命令:
uname -r
- 启动docker:
systemctl start docker
-
设置开机启动:
命令:`systemctl enable docker` Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
-
查找应用:
docker search rabbitmq
- 拉取镜像:
docker pull rabbitmq
- 查看镜像:
docker images
- 查看启动的容器:
docker ps
- 启动rabbitmq
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 [IMAGE ID]
注:[IMAGE ID] 为 docker images 命令查到的 IMAGE ID
-d:后台运行容器
--name:指定容器名
-p:端口映射。(运行之后必须与机器的端口进行映射,否则访问不到)
-v:映射目录或文件
--hostname:主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)
-e:指定环境变量。(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
- 启动管理界面:
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
访问:http://ip:15672
遇到的问题
1. 启动rabbitmq之后查看不到运行容器
- 可以通过查看docker日志查看原因
- 命令:docker logs [容器id-CONTAINER ID]
注: [容器id-CONTAINER ID] 通过 docker ps -a 查看
2. permission denied
在centos上挂载数据卷,在容器内部访问数据卷的时候报permission denied出错
- 原因:Centos7安全Selinux禁止了一些安全权限,导致在进行挂载的时候会提示如下信息:Permission denied
- 解决:
- 查看SELinux状态:
命令:SELinux status
如果是enable表示启动 - 修改配置文件:
命令:vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled - 重启机器
重启命令:shutdown -r now
- 查看SELinux状态:
3. 没有管理界面
- 安装的rabbitmq没有rabbitmq_management插件
通过docker镜像查询安装的版本知否支持管理页面插件:
https://hub.docker.com/search?q=rabbitmq&type=image. - 插件没有启动
- 解决一:启动rabbitmq之后直接执行命令:
docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management - 解决二: 进入容器内部
docker exec -it [容器名称] /bin/bash
启动插件:rabbitmq-plugins enable rabbitmq_management
- 解决一:启动rabbitmq之后直接执行命令:
4. Stats in management UI are disabled on this node
- 原因:
原因参考这个:
链接: https://www.rabbitmq.com/management.html#disable-stats.
- 解决:
1 进入rabbitmq容器内部命令: docker exec -it [容器名称] /bin/bash
2 命令:cd /etc/rabbitmq/conf.d/
3 命令:echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
4 快捷键退出容器内部:ctrl+P+Q
5 重启rabbitmq:docker restart rabbitmq