使用docker部署RabbitMQ完整版教学(已避坑版)
1. 安装Docker和Docker Compose
首先,确保你已经安装了Docker和Docker Compose。如果没有安装,可以参考以下步骤:
安装Docker
# 更新包索引 sudo apt-get update # 安装依赖包 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common # 添加Docker的官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 添加Docker的APT仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 更新包索引 sudo apt-get update # 安装Docker CE sudo apt-get install docker-ce
安装Docker Compose
# 下载Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 赋予执行权限 sudo chmod +x /usr/local/bin/docker-compose # 验证安装 docker-compose --version
2. 创建Docker Compose文件
接下来,创建一个docker-compose.yml文件来定义RabbitMQ服务。
version: '3.8' # 使用Docker Compose版本3.8 services: rabbitmq: image: rabbitmq:3.9-management # 使用带有管理插件的RabbitMQ镜像 container_name: rabbitmq # 容器名称 ports: - "5672:5672" # RabbitMQ的AMQP端口 - "15672:15672" # RabbitMQ的管理界面端口 environment: RABBITMQ_DEFAULT_USER: admin # 设置默认用户名 RABBITMQ_DEFAULT_PASS: password # 设置默认密码 volumes: - rabbitmq_data:/var/lib/rabbitmq # 持久化数据卷 volumes: rabbitmq_data: # 定义数据卷
3. 启动RabbitMQ服务
使用Docker Compose启动RabbitMQ服务。
# 在docker-compose.yml文件所在目录下运行 docker-compose up -d
4. 访问RabbitMQ管理界面
RabbitMQ启动后,你可以通过浏览器访问RabbitMQ的管理界面。
-
管理界面URL: http://localhost:15672
-
用户名: admin
-
密码: password
5. 本地访问RabbitMQ
你可以使用AMQP协议在本地访问RabbitMQ。
-
AMQP URL: amqp://admin:password@localhost:5672/
6. 停止和删除服务
如果你想停止或删除RabbitMQ服务,可以使用以下命令:
# 停止服务 docker-compose down # 删除服务及数据卷 docker-compose down -v
7. 其他常用命令
# 查看日志 docker-compose logs -f rabbitmq # 进入容器 docker exec -it rabbitmq bash # 查看容器状态 docker-compose ps
总结
通过以上步骤,你已经成功在Docker上部署了RabbitMQ,并且可以通过本地访问和管理RabbitMQ服务。Docker Compose文件定义了RabbitMQ的配置和持久化存储,确保数据不会丢失。
部署启动成功后,可能会遇到以下坑!!!!
问题1:RabbitMQ 管理界面访问不了
如果 RabbitMQ 容器正常运行且端口可以访问,尝试通过浏览器访问 RabbitMQ 管理界面:
-
URL: http://:15672
-
用户名: admin
-
密码: 123456
(图片来源网络,侵删)如果无法访问,可能是以下原因:
-
RabbitMQ 管理插件未启用。
(图片来源网络,侵删) -
RabbitMQ 配置有问题。
检查 RabbitMQ 管理插件
进入容器内部,检查管理插件是否启用:
(图片来源网络,侵删)docker exec -it rabbitmq bash
在容器内运行以下命令:
rabbitmq-plugins list
确保 rabbitmq_management 插件已启用。如果没有启用,可以手动启用:
rabbitmq-plugins enable rabbitmq_management
退出docker容器
exit
重启docker中rabbitmq容器
docker restart {rabbitmq容器id或容器名称}
问题2:Stats in management UI are disabled on this node
RabbitMQ后台管理页面上点击 Channels 时如果出现提示:
Stats in management UI are disabled on this node
问题原因:
The reason is that the default image disables metrics collector in the management_agent plugin:
# cat /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf management_agent.disable_metrics_collector = true
解决办法:
#进入rabbitmq容器 docker exec -it {rabbitmq容器名称或者id} /bin/bash
进入容器
cd /etc/rabbitmq/conf.d/
修改 management_agent.disable_metrics_collector = false
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
退出docker容器
exit
重启docker中rabbitmq容器
docker restart {rabbitmq容器id或容器名称}
根据以上的方案愿大家可以解决该问题!!!
-
-
-