docker安装rabbitmq遇到Permission denied

本文介绍如何解决在Docker中部署RabbitMQ时遇到的权限问题,并提供详细的步骤来确保容器能够正常启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装脚本,前提是已安装好docker

docker run -d --net host --name rabbitmq -v /home/rabbitmq:/var/lib/rabbitmq -v /opt/rabbitmq/hosts:/etc/hosts -v /rabbitmqconfig/rabbitmq:/etc/rabbitmq/ -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 -e TZ="Asia/Shanghai" -e RABBITMQ_DEFAULT_USER="rabbitmq" -e RABBITMQ_DEFAULT_PASS=123456  rabbitmq:management

2、不出意外的话,docker容器启动会报错,启动不了,原因是我们挂载了配置文件目录,没有权限操作,报错信息如下:
在这里插入图片描述

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

3、这个错的意思是,没有权限操作这个文件。网上查了好久,给出的解决办法:在挂载目录后多加一个–privileged=true参数 ,本人测试几次无效;还有的说是进入容器,然后给目录赋权,类似参考,我想知道容器都起不来,是怎么进去赋权的。。。
4、后来操作又遇到一种情况是没有权限操作/etc/rabbitmq/文件夹下面的配置文件,但是容器起来了,这个时候就是上面说的那种进去赋权的情况了,赋权之后重启容器就可以了。
在这里插入图片描述

touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Permission denied
WARNING: '/etc/rabbitmq/rabbitmq.conf' is not writable, but environment variables have been provided which request that we write to it
  We have copied it to '/tmp/rabbitmq.conf' so it can be amended to work around the problem, but it is recommended that the read-only source file should be modified and the environment variables removed instead.

1.先进入容器
 docker exec -it 容器id  /bin/bash
 chmod a+rwx -R etc
 chmod a+rwx -R log
 chmod a+rwx -R lib
 exit 退出容器  
 docker restart 容器id 重启容器

5、我本地的解决办法是,先创建一个没有目录映射的容器

docker run -d --net host --name rabbitmq  -p 4369:4369 -p 5672:5672 -p 15672:15672 -p 25672:25672 -e TZ="Asia/Shanghai" -e RABBITMQ_DEFAULT_USER="rabbitmq" -e RABBITMQ_DEFAULT_PASS=123456  rabbitmq:management

然后把docker里面没有目录映射容器的配置文件复制一份出来(进入容器使用docker cp -a 容器id:/etc/rabbitmq /rabbitmqconfig/rabbitmq/),放到指定目录下,作为带映射目录容器的映射路径。然后在创建带映射路径的容器,启动就不会报错了,亲测是没有问题的。容器中配置文件目录为:/etc/rabbitmq

6.容器中相关目录说明:

进入容器:
docker exec -it rabbit /bin/bash
配置文件目录:/etc/rabbitmq
数据存储目录:/var/lib/rabbitmq
日志目录:/var/log/rabbitmq
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值