rabbitmq使用docker容器挂载宿主机配置文件时无法访问控制台

2023-05-16

一、场景

本文使用的环境为:

  • linux
  • docker
  • rabbitmq镜像

二、正常情况

正常情况下,我们启动rabbitmq的docker容器,只需要输入以下命令即可,

docker run \
-d \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123456 \
--network my-bridge \
--ip 172.18.0.6 \
--restart=always \
--name rabbitmq \
docker.io/rabbitmq

启动后可以正常访问控制台,如图

在这里插入图片描述

三、出现问题

当我想把rabbitmq的运行日志输出到文件时,使用docker挂载一个宿主机的配置文件,在此配置文件中对日志文件进行配置如下所示

  • 新建保存配置文件的目录并进入该目录

    cd /usr/local/rabbitmq/conf
    
  • 编辑配置文件vim rabbitmq.conf,该配置文件名称固定

    # 日志级别
    log.file.level = info
    # 日志文件位置
    log.dir = /var/log/rabbitmq
    # 日志文件名称
    log.file = rabbit.log
    # 每天0点滚动日志文件
    log.file.rotation.date = $D0
    # 日志文件的最大存档数为7
    log.file.rotation.count = 7
    # 控制台api访问日志
    management.http_log_dir = /var/log/rabbitmq/access
    
  • 编辑容器的启动命令,在之前的命令上添加两个挂载配置,分别挂载配置文件日志文件的路径

    docker run \
    -d \
    -p 5672:5672 \
    -p 15672:15672 \
    -e RABBITMQ_DEFAULT_USER=admin \
    -e RABBITMQ_DEFAULT_PASS=123456 \
    --network my-bridge \
    --ip 172.18.0.6 \
    --restart=always \
    --name rabbitmq \
    -v /usr/local/rabbitmq/conf:/etc/rabbitmq \
    -v /usr/local/rabbitmq/logs:/var/log/rabbitmq \
    docker.io/rabbitmq
    
  • 将正常运行的docker容器stoprm掉后,再次执行启动命令,此时已发现无法打开控制台

    在这里插入图片描述

四、排查

  • 首先检查docker容器是否正常启动,发现不是这个问题

    在这里插入图片描述

  • 查看容器的日志,虽然没有报错信息,但是最后一行日志似乎给了我们线索,启动时一个插件都没有生效呢?

    在这里插入图片描述

  • 查看官方文档

    进入dockerhub,搜索rabbitmq,查看官方给的overview里是否给了答案。很幸运,在overview里我们发现了关于插件的介绍。

    在这里插入图片描述

    您还可以在/etc/rabbitmq/enabled_plugins处挂载一个文件,其内容是以句点结尾的原子的erlang列表。

    例如:文件名为enabled_plugins

    [rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].
    

    注意不要漏掉最后的标点符号.

五、解决

看到这里,应该就是此问题的解决方案了。

然后我们发现enabled_plugins文件和配置文件是在同一个目录下的,可能正是因为我们只挂载了配置文件rabbitmq.conf,却忽略了该文件而导致了问题。

  • 在宿主机的配置文件rabbitmq.conf相同目录下新建文件enabled_plugins

    [rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].
    
  • 再检查容器的启动命令,宿主机/usr/local/rabbitmq/conf目录下的rabbitmq.confrabbitmq.conf都已经挂载到容器的/etc/rabbitmq目录下了

    docker run \
    -d \
    -p 5672:5672 \
    -p 15672:15672 \
    -e RABBITMQ_DEFAULT_USER=admin \
    -e RABBITMQ_DEFAULT_PASS=123456 \
    --network my-bridge \
    --ip 172.18.0.6 \
    --restart=always \
    --name rabbitmq \
    -v /usr/local/rabbitmq/conf:/etc/rabbitmq \
    -v /usr/local/rabbitmq/logs:/var/log/rabbitmq \
    docker.io/rabbitmq
    
  • 启动容器,直接打开控制台检查效果

    在这里插入图片描述

  • 问题解决



纸上得来终觉浅,绝知此事要躬行。

————————————————我是万万岁,我们下期再见————————————————

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rabbitmq使用docker容器挂载宿主机配置文件时无法访问控制台 的相关文章

随机推荐

  • oracle create view语法

    视图实际上是一个或多个表上的预定义查询 xff0c 这些表称为基表 视图并不存储数据 xff0c 只是在查询视图时才访问基表 视图的优点 xff1a 限制用户只能通过视图检索数据 xff0c 对用户屏蔽基表 可以将复杂的查询编写为视图 xf
  • EL表达式两个foreach嵌套循环

    集合List中加List泛型的泛型 List lt RiskEvaSuitQuestion gt riskEvaSuitQuestionList 61 riskEvaSuitQuestionService getQueList 100003
  • JQuery通过radio,select改变隐藏显示div

    1 xff09 select下拉框控制div的隐藏与显示 lt script gt function checkYear var selectValue 61 34 select name 61 39 periodType 39 34 va
  • 开科唯识笔试

    对于这次的笔试 xff0c 我只想说BiShi 几道编程题加一道SQL题 1 找出所有三位数中的水仙花数 public void getNarcissusNums int g 61 0 s 61 0 b 61 0 sum 61 0 for
  • JDBC批量插入

    最近项目中有用到JDBC技术 xff0c 存在大量数据要进行插入 xff0c 通过研究采用批量插入速度快的不是一点点 下面简单比较了一下普通插入与批量插入5W条数据的时间效率 常规插入 xff1a 耗时12952ms public stat
  • exe应用程序无法启动,因为应用程序的并行配置不正确

    问题 xff1a exe应用程序无法启动 xff0c 因为应用程序的并行配置不正确 有关详细信息 xff0c 请参阅应用程序事件日志 xff0c 或使用命令行 sxstrace exe 工具 原因查找 xff1a 1 xff09 开始 所有
  • TortoiseSVN is locked in another working copy

    TortoiseSVN提交报错 TortoiseSVN is locked in another working copy 原因 xff1a 可能是因为打开了多个commit会话 xff0c 然后又去修改了提交文件的内容 xff0c 导致文
  • Java对接企业微信

    最近需要对接企业微信 xff0c 例如将风险测评结果推送给企业微信中对应的用户 xff0c 然后用户对结果进行查看与确认操作 xff0c 所以这里就涉及到两方面 xff1a 1 xff09 将外部系统内容推送到企业微信 xff1b 2 xf
  • 微众银行面试

    机缘巧合 xff0c 其实并没有换工作的想法 xff0c 却收到了微众的面试邀请 xff0c 就想着去看看当是增长见识吧 xff0c 因为已经好久没准备面试的事情了 xff0c 而且微众毕竟作为腾讯系的看起来好像也不错 说实话那边离地铁站是
  • sequelize的where条件接受动态参数传入

    用法1 问题场景 传入参数 xff1a 数组array 数组元素不定 目标 要实现逻辑 xff1a 遍历数组 xff0c 根据inverted的值对同一个表字段增加一个like查询 要生成的sql语句 xff08 where条件部分 xff
  • 针对github中raw.githubusercontent.com无法加载数据的解决办法

    针对github中raw githubusercontent com无法加载数据的解决办法 1 复制域名raw githubsercontent com到ip138 xff08 https site ip138 com xff09 查询域名
  • oracle alter table详解

    建测试表 create table dept deptno number 3 primary key dname varchar2 10 loc varchar2 13 create table employee info empno nu
  • MATLAB算法实战应用案例精讲-【数模应用】元胞自动机生命游戏(附Java、Python、C语言、C++和MATLAB代码实现)

    目录 前言 知识储备 元胞自动机的构成 元胞空间 元胞状态 邻域
  • 【Centos安装】华为鲲鹏服务器安装Centos系统

    跟我一起安装CentOS系统 1 对多块硬盘进行RAID2 准备系统安装盘3 进入安装界面前的过程4 带UI的可视化安装页面5 将其他可用的磁盘进行挂载并创建分区 1 对多块硬盘进行RAID 通过将多块硬盘建立为磁盘阵列 Redundant
  • 一、操作系统的基本概念

    一 操作系统的概念 1 定义 操作系统 xff08 OS xff09 是控制和管理计算机系统的硬件和软件资源 xff0c 并合理的组织调度计算机工作和资源的分配 xff0c 以提供给用户和其他软件方便的接口和环境 xff0c 是计算机系统最
  • 【Networkx】module ‘networkx‘ has no attribute ‘connected_component_subgraphs‘

    H span class token operator 61 span span class token builtin list span span class token punctuation span nx span class t
  • SpringMVC之配置文件

    配置文件 1 web xml xff08 全局配置文件 xff09 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt web app xmlns 61 34 http xml
  • 常见问题随记,以备后用

    记录日常工作中遇到的问题及解决办法 xff0c 避免每次都需要搜索的情况 常见问题解决办法 1 org slf4j不存在2 39 url 39 attribute is not specified and no embedded datas
  • 迅雷“应版权方要求,文件无法下载”完美解决方法!

    近日有用户留言说 xff0c 用迅雷下载最新电影资源时提示 应版权方要求 xff0c 文件无法下载 xff0c 有电影的种子就是无法下载 xff0c 怎么办呢 xff1f 今天电脑学习小编就教大家如何下载这种无法下载的电影吧 为了好理解 x
  • rabbitmq使用docker容器挂载宿主机配置文件时无法访问控制台

    一 场景 本文使用的环境为 xff1a linuxdockerrabbitmq镜像 二 正常情况 正常情况下 xff0c 我们启动rabbitmq的docker容器 xff0c 只需要输入以下命令即可 xff0c docker run d