保姆级教程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/[email protected]', reason: permission denied"写入日志文件权限被拒绝。

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

复制代码
sudo chmod 777 /data/docker/rabbitmq/log
相关推荐
诡异森林。1 小时前
Docker--Docker网络原理
网络·docker·容器
ALex_zry1 小时前
Docker Macvlan网络配置实战:解决“network already exists“错误
网络·docker·php
IT小辉同学1 小时前
Docker如何更换镜像源提高拉取速度
spring cloud·docker·eureka
matrixlzp2 小时前
K8S Service 原理、案例
云原生·容器·kubernetes
大新新大浩浩3 小时前
arm64适配系列文章-第六章-arm64环境上rabbitmq-management的部署,构建cluster-operator
rabbitmq·arm
GnixAij3 小时前
Docker SSH端口转发
docker·ssh
angushine3 小时前
让Docker端口映射受Firewall管理而非iptables
运维·docker·容器
玄明Hanko5 小时前
生产环境到底能用Docker部署MySQL吗?
后端·mysql·docker
玄明Hanko5 小时前
Quarkus+Docker最全面完整教程:手把手搞定Java云原生
后端·docker·云原生
SimonLiu0095 小时前
清理HiNas(海纳斯) Docker日志并限制日志大小
java·docker·容器