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

简介: 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
相关文章
|
5月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
2354 4
|
5月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
285 5
|
6月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
569 12
docker 部署 sftp
|
5月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
1748 8
|
5月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
708 6
|
5月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
4576 8
|
5月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
863 4
|
Docker 容器
Docker查看映射卷报错
问题描述: 当查看Docker容器的映射卷时出现报错信息,如下: [root@kazihuo ~]# docker inspect -f {{.Volumes}} volume   #volume指容器名称 Template parsing error: template: :1:2:...
1118 0