当前位置: 首页 > article >正文

通过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.kler.cn/news/339076.html

相关文章:

  • Linux 基础入门操作 - 第5章 基础文件操作
  • C++面试速通宝典——14
  • 每日OJ题_牛客_平方数_数学_C++_Java
  • 【数据管理】DAMA-元数据专题
  • 2024.9.29 问卷数据分析
  • [win7] win7系统的下载及在虚拟机中详细安装过程(附有下载文件)
  • 实战OpenCV之模板匹配
  • kafka-windows集群部署
  • 职场中的人情世故,你懂了多少?
  • Orecle 迁移 人大金仓数据库 SQL 问题
  • 详解正确创建好SpringBoot项目后但是找不到Maven的问题
  • 进阶岛第3关:LMDeploy 量化部署进阶实践
  • 流浪地球行星发动机
  • 掌握 C# 文件和输入输出操作
  • LabVIEW回转支承间隙自动化检测系统
  • Java面试八股之认证授权
  • 【SQL】掌握SQL查询技巧:高效数据整合与查询优化
  • MES系统:制造业的智能大脑
  • 在使用visual studio 2022,运行程序时弹窗:“ 此任务要求应用程序具有提升的权限“
  • constructor