Docker 安装 Rabbitmq

一、拉取镜像

docker pull rabbitmq:3.12.0-management

二、启动

docker run -d \
--name=rabbitmq \
--restart=always \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-v /home/rabbitmq:/var/lib/rabbitmq \
rabbitmq:3.12.0-management
  • -d:以守护进程模式在后台运行容器。
  • --name rabbitmq:为容器指定名称为 rabbitmq,方便后续管理。
  • --restart=always:它表示无论容器因为何种原因退出(包括正常退出和异常退出),Docker 守护进程都会自动重启该容器。比如当服务器重启、容器内部服务崩溃导致容器退出等情况发生时,容器都能自动重新启动,以提高容器内服务的可用性。
  • -p [宿主机端口]:[容器端口]
  • -p 5672:5672:将容器内用于 AMQP 协议通信的 5672 端口,映射到主机的 5672 端口。
  • -p 15672:15672:将容器内用于管理界面访问的 15672 端口,映射到主机的 15672 端口。
  • -e RABBITMQ_DEFAULT_USER=admin:设置 RabbitMQ 的默认用户名是 admin。
  • -e RABBITMQ_DEFAULT_PASS=admin:设置 RabbitMQ 的默认密码是 admin。
  • -v /home/rabbitmq:/var/lib/rabbitmq:将宿主机 /home/rabbitmq 目录挂载到容器内的 /var/lib/rabbitmq 目录,该目录是 RabbitMQ 存储数据的位置,这样可以防止容器删除后数据丢失。
  • rabbitmq:management:指定使用带有管理界面的 RabbitMQ 镜像。

三、访问

http://192.168.40.111:15672/
输入 admin/admin

 四、安装延迟队列插件

  1. 首先下载 rabbitmq_delayed_message_exchange-3.12.0.ez 文件上传到RabbitMQ所在服务器,下载地址:Community Plugins | RabbitMQ
  2. 切换到插件所在目录,执行 docker cp rabbitmq_delayed_message_exchange-3.12.0.ez rabbitmq:/plugins 命令,将刚插件拷贝到容器内plugins目录下。
  3. 执行 docker exec -it rabbitmq /bin/bash 命令进入到容器内部,并 cd plugins 进入plugins目录。
  4. 执行 ls -l|grep delay 命令查看插件是否 copy 成功。
  5. 在容器内 plugins 目录下,执行命令 rabbitmq-plugins enable rabbitmq_delayed_message_exchange 启用插件。
  6. exit 命令退出RabbitMQ容器内部,然后执行 docker restart rabbitmq 命令重启RabbitMQ容器。

### 如何使用 Docker 安装 RabbitMQ 的最佳实践 #### 创建挂载目录 为了确保数据持久化以及便于管理配置文件,在宿主机上创建专用的挂载目录是非常重要的。例如,可以在 Linux 系统中执行以下命令来创建并授权一个专门用于 RabbitMQ 数据存储的目录[^2]。 ```bash sudo mkdir -p /usr/local/docker/rabbitmq && sudo chmod 777 /usr/local/docker/rabbitmq ``` 此操作不仅提供了安全的数据保存路径,还允许容器内的 RabbitMQ 进程能够正常读写这些数据。 #### 部署单机版 RabbitMQ 启动 RabbitMQ 容器可以通过 `docker run` 命令完成。下面是一个典型的运行命令示例: ```bash docker run -d \ --name rabbitmq-server \ -p 5672:5672 \ -p 15672:15672 \ -v /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq \ -v /usr/local/docker/rabbitmq/log:/var/log/rabbitmq \ rabbitmq:management ``` 上述命令中的参数解释如下: - `-d`: 后台模式运行容器- `--name rabbitmq-server`: 设置容器名称为 `rabbitmq-server`。 - `-p 5672:5672`:RabbitMQ 默认消息端口映射到本地。 - `-p 15672:15672`: 映射 Web 管理界面端口至本机。 - `-v ...`: 使用之前创建的挂载目录分别绑定日志和数据卷[^1]。 #### 初始化与重置 RabbitMQ 节点 如果需要初始化或者重新配置某个 RabbitMQ 实例,则可通过进入容器内部执行相关命令实现。比如停止应用、清除状态再重启服务等操作可按如下方式处理[^3]: ```bash docker exec -it myrabbit1 bash rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app exit ``` #### 构建高可用集群环境 对于生产环境中构建多节点组成的 RabbitMQ 高可用集群来说,除了单独部署多个实例外还需要让它们彼此之间形成协作关系。假设已经存在名为 `myrabbit1` 和 `myrabbit2` 的两个节点,那么新增加第三个节点 (`myrabbit3`) 加入该集群的具体方法如下所示[^4]: ```bash docker exec -it myrabbit3 bash rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster --ram rabbit@rabbit1 rabbitmqctl start_app exit ``` 以上步骤展示了从基础安装到高级集群搭建整个过程中涉及的关键环节和技术要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值