Docker部署RabbitMQ配置日志映射本地文件

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Docker部署RabbitMQ配置日志映射本地文件


  1. 创建需要映射的目录
# mkdir -p ~/rabbitmq/{etc,lib,var/{lib,log}}
mkdir -p ~/rabbitmq/{etc,log}
  1. 创建一个没有目录映射的容器
docker run -itd --name rabbit -p 5672:5672 -p 15672:15672 -p 25673:25672 rabbitmq:3.11-management
  1. 复制容器配置文件到本地
docker cp -a f20dfe09b150:/etc/rabbitmq ~/rabbitmq/etc
docker cp -a f20dfe09b150:/var/log/rabbitmq ~/rabbitmq/log
  1. 停止rabbit
docker stop rabbit
docker rm rabbit
  1. 修改日志文件输出

默认控制台输出

vim ~/rabbitmq/etc/conf.d/10-defaults.conf
log.console = false # 默认true
  1. 启动rabbit MQ
docker run -itd --name rabbit -p 5672:5672 -p 15672:15672 -p 25673:25672 \
-v ~/rabbitmq/etc:/etc/rabbitmq \
-v ~/rabbitmq/log:/var/log/rabbitmq \
rabbitmq:3.11-management
  1. 查看日志
docker logs -f --tail=100 rabbit
tail -f ~/rabbitmq/log/rabbit@ed16387764ea.log


docker安装rabbitmq遇到Permission denied

touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Permission denied
touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Permission denied

网上解决办法:在挂载目录后多加一个–privileged=true参数 ,经测试几次无效;

解决:

  1. docker部署rabbitmq

先创建一个没有目录映射的容器

docker run -itd --name rabbit -p 1884:1883 -p 5673:5672 -p 15673:15672 -p 25673:25672 -p 61614:61613 docker.io/rabbitmq:3-management
  1. 进入docker查看rabbitmq的相关目录
  • docker exec -it rabbit /bin/bash
  • 配置文件目录:/etc/rabbitmq
  • 数据存储目录:/var/lib/rabbitmq
  • 日志目录:/var/log/rabbitmq
  1. 从容器中复制到宿主机
mkdir -p /home/rabbitmq/lib
mkdir -p /home/rabbitmq/etc
mkdir -p /home/rabbitmq/log
docker cp -a 容器ID:/var/lib/rabbitmq /home/rabbitmq/lib/
docker cp -a 容器ID:/etc/rabbitmq /home/rabbitmq/etc/
docker cp -a 容器ID:/var/log/rabbitmq /home/rabbitmq/log/
docker cp -a cc31fe09b295:/etc/rabbitmq ~/docker/rabbit/etc
docker cp -a cc31fe09b295:/var/lib/rabbitmq ~/docker/rabbit/lib/
docker cp -a cc31fe09b295:/var/log/rabbitmq ~/docker/rabbit/log/
  1. 启动

配置文件和日志映射到本地

-- 日志级别
docker run -itd --name rabbit01 -e RABBITMQ_LOGS=debug -v ~/docker/rabbit/etc/rabbitmq:/etc/rabbitmq -v ~/docker/rabbit/lib/rabbitmq:/var/lib/rabbitmq -v ~/docker/rabbit/log/rabbitmq:/var/log/rabbitmq -p 1884:1883 -p 5673:5672 -p 15673:15672 -p 25673:25672 -p 61614:61613 rabbitmq:3.11-management
docker restart rabbit01 
-- 检查日志映射到本地是否正确配置
docker inspect rabbit01 
-- 查看日志
docker logs -f rabbit01 
tail -f ~/docker/rabbit/log/rabbitmq/debug

注意权限问题:如果docker logs -f rabbit01查看生成的文件有权限问题,可手动创建日志文件~/docker/rabbit/log/rabbitmq/debug,并设置读写权限


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
7天前
|
jenkins 持续交付 网络安全
Jenkins——使用Docker部署Jenkins详解
Jenkins——使用Docker部署Jenkins详解
19 0
|
1天前
|
消息中间件 Docker 容器
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
这篇文章提供了RabbitMQ的安装和基本使用教程,包括如何使用Docker拉取RabbitMQ镜像、创建容器、通过浏览器访问管理界面,以及如何创建交换机、队列、绑定和使用direct、fanout和topic三种类型的交换器进行消息发布和接收的测试。
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
|
1天前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
4天前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
2天前
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
4天前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
14 0
|
5天前
|
存储 Ubuntu Linux
如何在 Ubuntu 上使用 Docker 容器化和部署多个 WordPress 应用程序
如何在 Ubuntu 上使用 Docker 容器化和部署多个 WordPress 应用程序
12 0
|
5天前
|
存储 Shell API
G6VP 与 GraphScope部署问题之拉取并启动 GraphScope 的 Docker 镜像如何解决
G6VP 与 GraphScope部署问题之拉取并启动 GraphScope 的 Docker 镜像如何解决
|
5天前
|
Linux Docker 异构计算
模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
9 0
|
5天前
|
JSON 文字识别 Linux
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
15 0