保姆级教程Docker部署RabbitMQ镜像

news/2024/12/23 10:48:20/

目录

1、创建挂载目录

2、运行RabbitMQ容器

3、Compose运行RabbitMQ容器

4、开启界面插件

5、查看RabbitMQ运行状态

6、常见问题处理


1、创建挂载目录

# 创建宿主机rabbitMQ挂载目录
sudo mkdir -p /data/docker/rabbitmq/log# 修改log目录权限
sudo chmod 777 /data/docker/rabbitmq/log

2、运行RabbitMQ容器

# 拉取镜像
sudo docker pull rabbitmq:4.0.5# 运行容器
sudo docker run --privileged=true --net=bridge \
-d --name=rabbitmq \
-v /data/docker/rabbitmq/data:/var/lib/rabbitmq \
-v /data/docker/rabbitmq/config:/etc/rabbitmq \
-v /data/docker/rabbitmq/log:/var/log/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin@123 \
rabbitmq:4.0.5

参数解析如下:

参数参数说明
docker run运行 Docker 容器
-d容器将在后台运行,而不是占用当前的终端会话
--privileged=trueDocker会赋予容器几乎与宿主机相同的权限
--net=bridge网络模式配置,默认是bridge,bridge表示使用容器内部配置网络
--name rabbitmq容器命名为 rabbitmq,以便于管理和引用该容器
-p 15672:15672映射 RabbitMQ 管理页面端口
-p 5672:5672映射 RabbitMQ 消息接收端口
-e RABBITMQ_DEFAULT_USER=admin指定默认的 RabbitMQ 用户名为admin
-e RABBITMQ_DEFAULT_PASS=admin@123 指定默认的 RabbitMQ 密码为admin@123
-v /data/docker/rabbitmq/data:/var/lib/rabbitmq将主机目录挂载到容器内,用于数据持久化
-v /data/docker/rabbitmq/config:/etc/rabbitmq将主机目录挂载到容器内,用于配置文件持久化
-v /data/docker/rabbitmq/log:/var/log/rabbitmq将主机目录挂载到容器内,用于日志文件持久化

容器运行参数详解参考:Docker容器运行常用参数详解-CSDN博客 

3、Compose运行RabbitMQ容器

创建docker-compose.yml文件

sudo touch /data/docker/rabbitmq/docker-compose.yml

文件内容如下:

version: '3'services:rabbitmq:image: rabbitmq:4.0.5container_name: rabbitmqports:# 管理页面端口- "15672:15672"# 消息接收端口- "5672:5672"environment:# 默认的用户名密码RABBITMQ_DEFAULT_USER: adminRABBITMQ_DEFAULT_PASS: admin@123volumes:- /data/docker/rabbitmq/data:/var/lib/rabbitmq- /data/docker/rabbitmq/config:/etc/rabbitmq- /data/docker/rabbitmq/log:/var/log/rabbitmqprivileged: truenetwork_mode: "bridge"

运行容器

#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/rabbitmq/docker-compose.yml up -d

4、开启界面插件

进入rabbitMQ容器的控制台,运行以下命令开启界面插件,

rabbitmq-plugins enable rabbitmq_management

5、查看RabbitMQ运行状态

浏览器访问: http://127.0.0.1:15672/,查看rabbitMQ登录页面

6、常见问题处理

问题描述:运行rabbitMQ容器启动失败,报"failed to open log file at '/var/log/rabbitmq/rabbit@f1af52c33ddc.log', reason: permission denied"写入日志文件权限被拒绝。

解决方案:修改宿主机挂载目录/data/docker/rabbitmq/log的权限

sudo chmod 777 /data/docker/rabbitmq/log

http://www.ppmy.cn/news/1557444.html

相关文章

C++9--前置++和后置++重载,const,日期类的实现(对前几篇知识点的应用)

目录 1.前置和后置重载 2.const成员 3.日期类的实现 1.前置和后置重载 #include<iostream> using namespace std;class Date { public:Date(int year 2024, int month 1, int day 1){_year year;_month month;_day day;}//前置&#xff1a;返回1之后的结果//注意…

Vue.js前端框架教程8:Vue消息提示ElMessage和ElMessageBox

文章目录 ElMessageElMessageBox在 Vue 中,ElMessage 和 ElMessageBox 是 Element UI 和 Element Plus 提供的两个非常有用的组件,用于显示消息提示和弹窗对话框。 ElMessage ElMessage 是用于显示全局消息提示的组件。它可以显示不同类型的消息,如成功、警告、错误等。以…

Python爬虫实战:深入Lazada商品详情获取

在全球化电商的浪潮中&#xff0c;东南亚市场以其巨大的潜力和增长速度吸引了全球的关注。Lazada作为该地区的主要电商平台之一&#xff0c;提供了丰富的商品信息和市场动态。对于市场研究人员、电商企业乃至个人开发者来说&#xff0c;能够高效地获取Lazada商品详情是至关重要…

【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE

大多数开发人员都同意,与 15 年前相比,PHP 是一种更加理智、更加安全和可靠的语言。PHP5早期的不良设计已让位于更好的开发生态系统,其中包括类、自动加载、更严格的类型、更理智的语法以及一大堆其他改进。安全性也没有被忽视。 register_globals一些老读者可能还记得和的…

Keil5 STM32库函数的工程

库函数来间接的操作寄存器 条件编译&#xff0c;如果你定义了USE_STDPERIPH_DRIVER &#xff08;使用标准外设驱动&#xff09;这个字符串&#xff0c;stm32f10x_conf.h才有效

JavaEE 导读与环境配置

JavaEE 介绍 Java EE(Java Platform Enterprise Edition), Java 平台企业版. 是JavaSE的扩展, ⽤于解决企业级的开发需求, 所以也可以称之为是⼀组⽤于企业开发的Java技术标准. 所以, 学习JavaEE主要是学习Java在企业中如何应⽤ 框架学习 Java EE 课程共涉及4个框架的学习: Spr…

Java中ArrayList和LinkedList的区别?

在 Java 中&#xff0c;ArrayList和LinkedList都是实现了List接口的集合类&#xff0c;用于存储和操作有序的元素集合。它们在内部实现和性能特性上存在一些显著的区别&#xff0c;以下是对这两者的详细比较&#xff1a; 底层数据结构 ArrayList&#xff1a;基于数组实现&…

后摩尔定律时代,什么将推动计算机性能优化的发展?

在摩尔定律时代&#xff0c;每两年芯片上的晶体管数量就会翻一番&#xff0c;这一看似不可避免的趋势被称为摩尔定律&#xff0c;它极大地促进了计算机性能的提高。然而&#xff0c;硅基晶体管不可能一直小下去&#xff0c;半导体晶体管的微型化推动了计算机性能的提升&#xf…