通过Dockerfile 安装rabbitMq

news/2024/10/11 22:32:18/

一、编写Dockerfile 
 

Dockerfile 指令详细注释如下:

java"># 使用带有管理插件的官方 RabbitMQ 镜像作为基础
FROM rabbitmq:3.9-management# 复制自定义模板文件到 RabbitMQ 管理插件的模板目录
# 这里假设 ./users.ejs 和 ./limits.ejs 是用于自定义管理界面的模板文件
COPY ./users.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl
COPY ./limits.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl# 设置环境变量 ACTIVEMQ_HOME,虽然这里与 RabbitMQ 无关,但保留原样
ENV ACTIVEMQ_HOME /mydocker/activemq# 更新 apt 包列表,并安装 curl 工具,用于下载插件
RUN apt-get -o Acquire::Check-Date=false update && apt-get install -y curl# 下载延迟消息交换插件
# 将插件下载到 RabbitMQ 的 plugins 目录下
RUN curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez > $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez# 更改插件文件的所有者,确保 RabbitMQ 用户可以访问和管理插件
RUN chown rabbitmq:rabbitmq $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez# 启用延迟消息交换插件
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange

 上传Dockerfile 和自定义模版自行下载。上传到服务器

二、构建镜像

用上面Dockerfile 打包为本地镜像

注意:要在上面mydocker/rabbitMq目录下执行

java">docker build -t my-rabbitmq .

执行结果如下:

java">[+] Building 100.7s (12/12) FINISHED                                                                                                                                                               docker:default=> [internal] load build definition from Dockerfile                                                                                                                                                         0.0s=> => transferring dockerfile: 732B                                                                                                                                                                         0.0s=> [internal] load .dockerignore                                                                                                                                                                            0.0s=> => transferring context: 2B                                                                                                                                                                              0.0s=> [internal] load metadata for docker.io/library/rabbitmq:3.9-management                                                                                                                                  15.3s=> [1/7] FROM docker.io/library/rabbitmq:3.9-management@sha256:4c4b66ad5ec40b2c27943b9804d307bf31c17c8537cd0cd107236200a9cd2814                                                                             0.0s=> [internal] load build context                                                                                                                                                                            0.0s=> => transferring context: 61B                                                                                                                                                                             0.0s=> CACHED [2/7] COPY ./users.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl                                                                                                          0.0s=> CACHED [3/7] COPY ./limits.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl                                                                                                         0.0s=> [4/7] RUN apt-get -o Acquire::Check-Date=false update && apt-get install -y curl                                                                                                                        63.0s=> [5/7] RUN curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez > /opt/rabbitmq/plugins/rabbitmq_delayed_message_ex  17.5s=> [6/7] RUN chown rabbitmq:rabbitmq /opt/rabbitmq/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez                                                                                                       0.3s => [7/7] RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange                                                                                                                                      3.3s => exporting to image                                                                                                                                                                                       1.2s => => exporting layers                                                                                                                                                                                      1.1s => => writing image sha256:5580b8387db966233515e6582f57d04b07014cd9280d8593839903932dc0cffa                                                                                                                 0.0s => => naming to docker.io/library/my-rabbitmq                                                

 查看打包好的镜像:my-rabbitmq 

java">[root@syf rabbitMq]# docker images
REPOSITORY                                             TAG       IMAGE ID       CREATED          SIZE
my-rabbitmq                                            latest    5580b8387db9   45 seconds ago   319MB
dockertest                                             1.0       7f4faa206171   9 months ago     760MB
centosjava8                                            1.0       b66e5037b732   9 months ago     1.27GB
nginx                                                  latest    605c77e624dd   2 years ago      141MB
redis                                                  6.2.6     7614ae9453d1   2 years ago      113MB
mysql                                                  5.7       c20987f18b13   2 years ago      448MB
portainer/portainer-ce                                 2.9.1     bc46de77a3ff   2 years ago      252MB
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest    3fa112fd3642   8 years ago      6.85GB

三、运行镜像

运行上面打包好的镜像

java">docker run -d -p 15672:15672 -p 5672:5672 \-e RABBITMQ_DEFAULT_VHOST=my_vhost  \-e RABBITMQ_DEFAULT_USER=admin \-e RABBITMQ_DEFAULT_PASS=admin \--hostname myRabbit \--name rabbitmq \my-rabbitmq

参数说明:

  • -d:表示在后台运行容器;
  • -p:将容器的端口 5672(应用访问端口)和 15672 (控制台Web端口号)映射到主机中;
  • -e:指定环境变量:
  • RABBITMQ_DEFAULT_VHOST:默认虚拟机名;
  • RABBITMQ_DEFAULT_USER:默认的用户名;
  • RABBITMQ_DEFAULT_PASS:默认的用户密码;
  • --hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);
  • --name rabbitmq :设置容器名称;
  • my-rabbitmq:容器使用的镜像名称;

设置rabbitmq 自动启

java">docker update rabbitmq --restart=always

四、启动 rabbitmq_management

rabbitmq_management 是 RabbitMQ 的一个插件,它提供了对 RabbitMQ 服务器的管理界面和 HTTP API。通过这个插件,用户可以:

  1. 监控 队列、交换机、连接等的状态。
  2. 管理 创建、删除队列、绑定、用户权限等。
  3. 配置 查看配置信息,进行一些配置上的调整。
  4. 统计信息 获取详细的统计信息,如消息的发送速率、队列深度等。


方法一:

java">docker exec -it rabbitmq /bin/bash
---------------------------------rabbitmq-plugins enable rabbitmq_management



方法二::

java">docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management


 

五、测试访问 RabbitMQ 


浏览器输入地址:http://ip:15672 即可访问后台管理页面,如下:



注意: 由于我在启动容器的时候设置了默认的用户名 (Admin) 和密码 (Admin),所以需要使用设置的用户名和密码进行登录。

登录进去后的管理页面如下:

提示: 如果无法访问可以尝试开启防火墙 15672 端口:

java">firewall-cmd --zone=public --add-port=15672/tcp --permanent        
firewall-cmd --reload 


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

相关文章

c# 可空引用类型

在 C# 8 中,引入了可空引用类型(Nullable Reference Types,NRT),这是一项增强特性,旨在提高代码的安全性并减少运行时的 NullReferenceException。以下是关于可空引用类型的详细讲解。 什么是可空引用类型…

plpo vue实战版教程

vue实战版教程 什么是plpo安装1.将plop添加到您的项目2.全局安装plop(可选,但建议使用方便)3.在项目根目录下创建一个 plopfile.js vue 实战(后台管理系统 - 增删改查)所需文件文件介绍创建配置文件 plopfile.js创建模板和脚本命令文件模板创…

Qt Quick 3D 入门:QML 3D场景详解

随着 Qt 6 的发布,QtQuick3D 模块带来了新的 3D 渲染和交互能力,使得在 Qt 中创建 3D 场景变得更加简单和直观。本文将带您从一个简单的 QML 3D 应用开始,详细讲解各个相关领域的概念、代码实现以及功能特点。 什么是 Qt Quick 3D&#xff1…

通信工程学习:什么是DIP数据集成点

DIP:数据集成点 DIP数据集成点(Data Integration Point),简称DIP,是物联网技术(IoT)和机器到机器(M2M)通信中的一个重要组成部分。DIP在数据集成和传输过程中扮演着关键角…

launcher.py: error: the following arguments are required: --output_dir

记录一个LLaMA-Factroy配置过程。 安装 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]"训练 CUDA_VISIBLE_DEVICES0 llamafactory-cli train example/train_lora/.yaml按理说配置好文件应…

【2024】前端学习笔记14-JavaScript常用数据类型-变量常量

学习笔记 1.JavaScript常用数据类型1.1.Number(数字)1.2.String(字符串)1.3.Boolean(布尔值)1.4.Null(空值)1.5.Undefined(未定义)1.6.Object(对象…

毕业设计之—基于ManTra-Net的图像篡改检测方法研究与应用实现

1.摘要 随着互联网、社交媒体和简易图像操作工具的普及,图像篡改带来的问题日益严重。为了解决这一问题,研究者们利用深度卷积神经网络来检测图像篡改并定位篡改区域。为此我们训练了一个ManTra-Net模型,该模型以TensorFlow为后端&#xff0c…

山羊检测系统源码分享

山羊检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision 研究…