Docker中部署并启动RabbitMQ

目的

由于最近频繁更换云服务器,导致环境啥的都需要重新配置,关于RabbitMQ,我在看其他博主的文章时,总是不能第一时间找到想要的配置方法(也不是没有,只是花的时间太久),于是打算自己记录一下暂时与我有关的RabbitMQ的配置

具体操作

拉取镜像

在Docker中使用 以下命令拉取需要的镜像

java 复制代码
docker pull 镜像名:版本号

由于我使用到了延迟插件,版本为3.9.0(不同版本的镜像对应的延迟插件版本不同,不然插件就会安装失败),拉取RabbitMQ的镜像

bash 复制代码
docker pull rabbitmq:3.9.0

启动部署

当初找启动部署的命令,发现好多都是自带management版本的,于是乎花了很多时间才找到自己想要的,现在记录一下

bash 复制代码
docker run -d --hostname rabbitmq --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3.9.0

--hostname: 就是进入RabbitMQ内部时的主机名称

--name : 就是你给容器起名的名称

-p : 就是端口映射(需要开放两个端口,一个给服务端用,一个给用户端用)

-d:就是后台方式启动

开启管理页面插件

因为我使用的不是management版本,因此需要手动开启管理页面插件(该插件是安装rabbitmq时就有的,只是没有开启)。开启该插件的方式我知道的有两种:一种是进入rabbitmq容器内部进行开启;另一种是直接在Docker中开启

进入容器内部开启

进入容器命令
bash 复制代码
docker exec -it rabbitmq /bin/bash
开启插件命令
bash 复制代码
rabbitmq-plugins enable rabbitmq_management
成功标志

在Docker中直接开启插件

开启插件命令(更加方便快捷)

bash 复制代码
docker exec -it rabbitmq /bin/bash -c 'rabbitmq-plugins enable rabbitmq_management'

添加延迟队列插件

由于延迟插件并未集成到RabbitMQ中,因此需要自己下载与rabbitmq版本相关的插件并开启该延迟队列插件。

下载延迟队列插件

针对自己的rabbitmq版本,去RabbitMQ的官网中下载对应的插件,该插件名叫:rabbitmq-delayed-message-exchange

安装延迟队列插件

将下载完毕的RabbitMQ延迟队列插件上传到云服务器中,使用以下命令将其复制到Docker的RabbitMQ容器中:

bash 复制代码
docker cp /software/rabbitmq_delayed_message_exchange-3.9.0.ez rabbitmq:/plugins

开启延迟队列插件

方式一:直接在docker中开启
bash 复制代码
docker exec -it rabbitmq /bin/bash -c 'rabbitmq-plugins enable rabbitmq_delayed_message_exchange'
方式二:在容器中开启

进入容器命令:

bash 复制代码
docker exec -it rabbitmq /bin/bash

启动插件命令

bash 复制代码
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

成功标志

Tips

如果延迟队列插件安装失败,最好看一下插件版本和rabbitmq的版本是否一致(检查兼容性)

对于Docker在容器外部执行 容器内的命令介绍如下:

语法:

bash 复制代码
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

说明(引入了该文章内容):

1.1 OPTIONS 参数说明:

-i: 让容器的标准输入(STDIN)始终保持打开,即使没有输入任何指令(没有附加)

-t: 分配一个终端,这样我们就可以使用命令来操作

-d: 分离模式,让命令在后台(指的是宿主后台)运行。

--user:指定用户运行,当我们需要 root 用户权限时可以指定。

【注】一般使用 -it 就足够了。

1.2 COMMAND 参数:

command 指的是 shell 的类型,常见的有bash、sh、zsh,但是 Linux 系统大多数默认的是 bash 类型,新版 Mac OS 系统的话,默认的不再是 bash ,而是 zsh。

至此,Over...

相关推荐
阳光不锈@1 小时前
三大主流消息队列架构设计思想剖析:从 RabbitMQ 到 RocketMQ 的改造实践
kafka·rabbitmq·rocketmq·rabbit改造rocket·去除rabbitmq·rabbitmq改造
闲云野鹤在人间2 小时前
Kubernetes Service 与 kube-proxy 详解
云原生·容器·kubernetes
说实话起个名字真难啊3 小时前
实战docker部署dify及注意点
运维·docker·容器
闲云自留地4 小时前
K8s Service 全解:服务发现、四种类型、会话保持、金丝雀发布一篇通
容器·kubernetes·服务发现
choumin5 小时前
C++ 标准容器为什么不能存引用
c++·容器·引用类型
Starry-sky(jing)6 小时前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
对象存储与RustFS7 小时前
GPU 在空转等数据?PyTorch 训练集进 RustFS 的三种接法
后端·docker·云原生
可涵不会debug11 小时前
超级马里奥常驻极空间以后怎么打开?Docker运行游戏页面,手机电脑都能从浏览器进入
游戏·docker·智能手机
姜鱼问生1 天前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器
\光辉岁月/1 天前
2.spring5-IOC
java·容器·ioc·注解