通过Dockerfile 安装rabbitMq

一、编写Dockerfile 
 

Dockerfile 指令详细注释如下:

# 使用带有管理插件的官方 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目录下执行

docker build -t my-rabbitmq .

执行结果如下:

[+] 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 

[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

三、运行镜像

运行上面打包好的镜像

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 自动启

docker update rabbitmq --restart=always

四、启动 rabbitmq_management

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

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


方法一:

docker exec -it rabbitmq /bin/bash
---------------------------------rabbitmq-plugins enable rabbitmq_management



方法二::

docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management


 

五、测试访问 RabbitMQ 


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



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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557526.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

七、InnoDB数据存储结构

文章目录 1. 数据库的存储结构:页1.1 磁盘与内存交互基本单位:页1.2 页结构概述1.3 页的大小1.4 页的上层结构2. 页的内部结构2.1 第1部分:File Header(文件头部)和 File Trailer(文件尾部)2.1.1 File Header(文件头部)2.1.2 File tRAILER(文件尾部)2.2 第2部分:Fr…

网络知识点之—EVPN

EVPN(Ethernet Virtual Private Network)是下一代全业务承载的VPN解决方案。EVPN统一了各种VPN业务的控制面,利用BGP扩展协议来传递二层或三层的可达性信息,实现了转发面和控制面的分离。 EVPN解决传统L2VPN的无法实现负载分担、…

【优选算法】--- 分治 快速排序

分治 快速排序 一、颜色分类 / 对快排的复习1、题目解析2、算法原理3、代码 二、排序数组(快排的方法)1、题目解析2、算法原理3、代码 三、数组中的第K个最大元素1、题目解析2、算法原理3、代码 四、库存管理 III(原:剑指 Offer .…

如何使用pymysql和psycopg2连接MySQL和PostgreSQL数据库

在现代软件开发中,数据库是存储和管理数据的核心组件。Python作为一种流行的编程语言,提供了多种方式来连接和操作数据库。在这篇文章中,我们将探讨如何使用pymysql和psycopg2这两个库来连接MySQL和PostgreSQL数据库。我们将从基础概念开始&a…

Khronos:动态环境下时空度量语义SLAM的统一方法

Khronos: A Unified Approach for Spatio-Temporal Metric-Semantic SLAM in Dynamic Environments 原文 项目 引言: 人类居住环境通常是高度动态的,人、机器人和其他实体不断移动、互动和改变场景。对于机器人在这种情况下的操作,仅仅建立一…

想要加密电脑?盘点2024年企业常用的10款电脑文件加密软件

在企业数据安全的时代背景下,文件加密已经成为保护企业核心信息、应对网络安全威胁的关键举措。无论是保护机密的商业数据,还是遵守数据隐私合规性要求,企业对文件加密软件的需求日益增长。本文将盘点2024年企业常用的10款电脑文件加密软件&a…

安卓如何实现双击触摸唤醒点亮屏幕功能-源码分析linage os高通平台

背景: 前面文章已经有讲解过双击亮屏在一些方案调研情况,刚好linage os手机本身也有这个功能,刚好也有整体开源源码,所以今天带大家来对双击亮屏的源码部分进行剖析,本篇文章会一直分析到hal操作驱动节点。 设置作为…

重学SpringBoot3-集成Redis(二)之注解驱动

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(二)之注解驱动 1. 为什么选择 Redis 作为缓存?2. 如何在 Spring Boot 中启用 Redis 缓存?2.1 …

华为OD七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD(Python/JS/C/C++)

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训五、精心挑选21道高频100分经典题目,作为入门。第1天、逻辑分析第2天、数组第3天、双指针第4天、滑动窗口第5天、贪心算法第6天、二分查找第7天、分治递归 六、集训总结 大家好,我是哪吒。 最…

Qt程序打包(解决找到dll问题)

1、运行Qt程序找不到dll 在Qt Creator外,运行Qt编译的exe程序,常常出现找不到xxx.dll而无法运行的问题。 解决的办法之一是找到Qt安装目录下bin文件夹中的dll文件,将该路径添加到系统环境变量path中去。 第二种办法就是对Qt程序进行打包&…

来了,使用YOLOv11目标检测教程

来了,使用YOLOv11目标检测教程 概述 YOLO11 在 2024 年 9 月 27 日的 YOLO Vision 2024 活动中宣布:https://www.youtube.com/watch?vrfI5vOo3-_A。 YOLO11 是 Ultralytics YOLO 系列的最新版本,结合了尖端的准确性、速度和效率&#xff…

【LeetCode】动态规划—72. 编辑距离(附完整Python/C++代码)

动态规划—72. 编辑距离 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释 总结: 前言 编辑距离问题是字符串处理中的经…

threejs-模型贴图颜色与图片存在色差 问题解决方案

我使用的是obj模型,然后加载的话使用的是texturelLoader加载器,效果是这样的 使用的场景是:能够将图片贴到衣服上,并且能够移动旋转等操作贴图,但是这存在很明显的色差问题,具体的解决方案是: 我…

.Net Core 接口或网站发布到IIS

将.Net Core 接口或网站发布到IIS上,需要遵循一系列步骤来确保正确配置和部署。下面将以.NET Core 3.1的api接口发布示范: 一、环境准备 安装.NET Core 3.1 SDK和运行时: 在服务器上安装.NET Core 3.1 SDK(如果需要在服务器上编译…

LeetCode 48 Rotate Image 解题思路和python代码

题目: You are given an n x n 2D matrix representing an image, rotate the image by 90 degrees (clockwise). You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and …

桥水基金、贝莱德、摩根士丹利选择极狐GitLab 的五大理由!

疯狂上涨的 A股、港股 节前一周,上证指数累计上涨超 12%,创下2008年11月以来最大单周涨幅;深证成指累计上涨超17%,创下1996年4月最大单周涨幅;创业板指上涨超22%,创下史上最大单周涨幅。 过去两周&#x…

1688代采系统-反向海淘系统详细介绍

Onebound凡邦1688代采系统-反向海淘系统是一种专为海外买家及跨境电商提供一站式采购解决方案的平台。其核心功能和服务旨在解决跨境采购中的语言、货币等常见问题,并优化采购流程,提高采购效率。以下是对该系统的详细介绍。 一、核心功能 商品采集与展…

基于Java(Jsp+Sevlet)+MySql 实现的(Web)成绩管理系统

1 概述 1.1 开发背景 随着学生数量的日渐增多,学生教务系统的数据量也不断增加,这无疑大大增加了教务系统的负担。如果能把负责学生成绩管理的模块独立出来形成一个独立的系统,便可以有效降低教务系统的数据量,不仅可以方便管理…

2003-2023年上市公司政府补助明细数据

2003-2023年上市公司政府补助明细数据 1、时间:2003-2023年 2、来源:通过整理和筛选于企业财务报表附注“营业外收入”下的“政府补助明细”得到 3、指标:年份、股票代码、股票简称、行业名称、省份、城市、区县、上市状态、政府补助金额、…

企业架构系列(16)ArchiMate第14节:实施和迁移视角

在企业架构中,为了有效地规划和管理架构的变更与实施,通常会使用不同的视角来描述架构的不同方面。本篇涉及到三个主要视角:项目视角、迁移视角以及实施与迁移视角。 一、实施和迁移视角概览 1.项目视角 元素与关系:关注项目本身…