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
相关文章
|
1月前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
87 1
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
1月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
104 1
|
2月前
|
应用服务中间件 Docker 容器
docker应用部署---Tomcat的部署配置
这篇文章介绍了如何使用Docker部署Tomcat服务器,包括搜索和拉取Tomcat镜像、创建容器并设置端口映射和目录映射,以及如何创建一个HTML页面并使用外部机器访问Tomcat服务器。
docker应用部署---Tomcat的部署配置
|
1月前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
284 1
|
1月前
|
存储 Ubuntu JavaScript
如何使用Docker优化你的开发环境配置
如何使用Docker优化你的开发环境配置
|
1月前
|
消息中间件 数据安全/隐私保护 Docker
Docker安装rabbitmq
如何使用Docker安装和配置RabbitMQ服务,包括拉取RabbitMQ镜像、创建容器、配置持久化和访问管理界面的步骤。
91 0
Docker安装rabbitmq
|
1月前
|
Docker 容器
利用Docker Compose优化开发环境的配置
在现代软件开发中,环境一致性至关重要。开发人员常需在不同机器间复制环境配置,而Docker Compose提供了一种简便有效的方法来定义和运行多容器Docker应用程序,确保开发、测试和生产环境一致,简化团队协作,提高开发效率。通过YAML文件配置服务、网络和卷,使用简单命令即可启动和停止服务。本文将介绍Docker Compose的核心优势、基本使用方法及高级功能,帮助你更好地管理和优化开发环境。
ly~
|
2月前
|
消息中间件 搜索推荐 大数据
一般情况下在 RocketMQ 中添加 access key 的步骤: 一、确定配置文件位置 RocketMQ 的配置文件通常位于安装目录下的 conf 文件夹中。你需要找到 broker.conf 或相关的配置文件。 二、编辑配置文件 打开配置文件,查找与 ACL(访问控制列表)相关的配置部分。 在配置文件中添加以下内容:
大数据广泛应用于商业、金融、医疗和政府等多个领域。在商业上,它支持精准营销、客户细分及流失预测,并优化供应链管理;金融领域则利用大数据进行风险评估、市场预测及欺诈检测;医疗行业通过大数据预测疾病、提供个性化治疗;政府运用大数据进行城市规划和公共安全管理;工业领域则借助大数据进行设备维护、故障预测及质量控制。
ly~
102 2
|
2月前
|
应用服务中间件 nginx Docker
docker应用部署---nginx部署的配置
这篇文章介绍了如何使用Docker部署Nginx服务器,包括搜索和拉取Nginx镜像、创建容器并设置端口映射和目录映射,以及如何创建一个测试页面并使用外部机器访问Nginx服务器。
|
9天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
36 2