保姆级教程Docker部署RabbitMQ镜像

目录

1、创建挂载目录

2、运行RabbitMQ容器

3、Compose运行RabbitMQ容器

4、开启界面插件

5、查看RabbitMQ运行状态

6、常见问题处理


1、创建挂载目录

复制代码
# 创建宿主机rabbitMQ挂载目录
sudo mkdir -p /data/docker/rabbitmq/log

# 修改log目录权限
sudo chmod 777 /data/docker/rabbitmq/log

2、运行RabbitMQ容器

复制代码
# 拉取镜像
sudo docker pull rabbitmq:4.0.5

# 运行容器
sudo docker run --privileged=true --net=bridge \
-d --name=rabbitmq \
-v /data/docker/rabbitmq/data:/var/lib/rabbitmq \
-v /data/docker/rabbitmq/config:/etc/rabbitmq \
-v /data/docker/rabbitmq/log:/var/log/rabbitmq \
-p 15672:15672 -p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin@123 \
rabbitmq:4.0.5

参数解析如下:

|-------------------------------------------------|-------------------------------------|
| 参数 | 参数说明 |
| docker run | 运行 Docker 容器 |
| -d | 容器将在后台运行,而不是占用当前的终端会话 |
| --privileged=true | Docker会赋予容器几乎与宿主机相同的权限 |
| --net=bridge | 网络模式配置,默认是bridge,bridge表示使用容器内部配置网络 |
| --name rabbitmq | 给容器命名为 rabbitmq,以便于管理和引用该容器 |
| -p 15672:15672 | 映射 RabbitMQ 管理页面端口 |
| -p 5672:5672 | 映射 RabbitMQ 消息接收端口 |
| -e RABBITMQ_DEFAULT_USER=admin | 指定默认的 RabbitMQ 用户名为admin |
| -e RABBITMQ_DEFAULT_PASS=admin@123 | 指定默认的 RabbitMQ 密码为admin@123 |
| -v /data/docker/rabbitmq/data:/var/lib/rabbitmq | 将主机目录挂载到容器内,用于数据持久化 |
| -v /data/docker/rabbitmq/config:/etc/rabbitmq | 将主机目录挂载到容器内,用于配置文件持久化 |
| -v /data/docker/rabbitmq/log:/var/log/rabbitmq | 将主机目录挂载到容器内,用于日志文件持久化 |

容器运行参数详解参考:Docker容器运行常用参数详解-CSDN博客

3、Compose运行RabbitMQ容器

创建docker-compose.yml文件

复制代码
sudo touch /data/docker/rabbitmq/docker-compose.yml

文件内容如下:

复制代码
version: '3'
 
services:
  rabbitmq:
    image: rabbitmq:4.0.5
    container_name: rabbitmq
    ports:
      # 管理页面端口
      - "15672:15672"
      # 消息接收端口
      - "5672:5672"
    environment:
      # 默认的用户名密码
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: admin@123
    volumes:
      - /data/docker/rabbitmq/data:/var/lib/rabbitmq
      - /data/docker/rabbitmq/config:/etc/rabbitmq
      - /data/docker/rabbitmq/log:/var/log/rabbitmq
    privileged: true
    network_mode: "bridge"

运行容器

复制代码
#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/rabbitmq/docker-compose.yml up -d

4、开启界面插件

进入rabbitMQ容器的控制台,运行以下命令开启界面插件,

复制代码
rabbitmq-plugins enable rabbitmq_management

5、查看RabbitMQ运行状态

浏览器访问: http://127.0.0.1:15672/,查看rabbitMQ登录页面

6、常见问题处理

**问题描述:**运行rabbitMQ容器启动失败,报"failed to open log file at '/var/log/rabbitmq/rabbit@f1af52c33ddc.log', reason: permission denied"写入日志文件权限被拒绝。

**解决方案:**修改宿主机挂载目录/data/docker/rabbitmq/log的权限

复制代码
sudo chmod 777 /data/docker/rabbitmq/log
相关推荐
iiYcyk10 分钟前
服务器线程高占用定位方法
容器
startdrift110633 分钟前
docker run 命令,不接it选项,run一个centos没有显示在运行,而run一个nginx却可以呢?
nginx·docker·centos
Cxzzzzzzzzzz1 小时前
RabbitMQ 入门与 Go 语言实践
golang·rabbitmq·ruby
yuxb7310 小时前
Docker学习笔记(二):镜像与容器管理
笔记·学习·docker
Delphi菜鸟11 小时前
docker 部署RustDesk服务
运维·docker·容器
Sweety丶╮79411 小时前
【Kubernetes】知识点总结5
云原生·容器·kubernetes
今晚务必早点睡12 小时前
从零到上线:Docker、Docker Compose 与 Runtime 安装部署全指南(含实战示例与应用场景)
运维·docker·容器
零千叶13 小时前
【面试】RabbitMQ 常见问题
面试·职场和发展·rabbitmq
kobe_OKOK_13 小时前
rabbitmq 入门知识点
分布式·rabbitmq·ruby
王嘉俊92513 小时前
深入浅出 全面剖析消息队列(Kafka,RabbitMQ,RocketMQ 等)
分布式·kafka·消息队列·rabbitmq·rocketmq