保姆级教程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
相关推荐
..Move...36 分钟前
Docker应用部署tomcat和nginx
nginx·docker·tomcat
兜兜风d'3 小时前
RabbitMQ 持久性详解
spring boot·分布式·rabbitmq·1024程序员节
blammmp3 小时前
RabbitMQ :概述,Web界面介绍,快速上手,工作模式
java·分布式·rabbitmq
Jenwein3 小时前
Linux中使用docker的网络问题
后端·docker
java_logo4 小时前
Docker 部署 Debian 全流程教程
linux·运维·docker·容器·debian
❀͜͡傀儡师4 小时前
基于 docker compose 进行部署PandaWiki
运维·docker·容器
老朋友此林6 小时前
一文速通k8s基础概念原理Kubernetes
云原生·容器·kubernetes
Xiaoweidumpb6 小时前
Linux Docker docker-compose 部署python脚本
linux·python·docker
Broken Arrows7 小时前
解决同一个宿主机的两个容器无法端口互通报错“No route to host“的问题记录
运维·学习·docker
VermiliEiz8 小时前
k8s的calico出现ipset报错解决方法
云原生·容器·kubernetes