Windows上的RabbitMQ docker容器持久性

Windows上的RabbitMQ docker容器持久性,docker,rabbitmq,erlang,docker-compose,Docker,Rabbitmq,Erlang,Docker Compose,我已经创建了一个docker-compose.yml文件,在尝试创建它时,我无法将RabbitMQ docker容器持久化到主机卷。它抱怨ErlangCookie文件只能由所有者访问 在此方面的任何帮助都将不胜感激 编辑 因此,我添加了上面的卷绑定,当我进行docker组装时,rabbitmq似乎正在将文件放入该目录中。然后我添加了2条消息,我可以通过rabbitmq控制台看到这2条消息位于队列中……但是当我执行docker compose down,然后执行docker compose up时

我已经创建了一个docker-compose.yml文件,在尝试创建它时,我无法将RabbitMQ docker容器持久化到主机卷。它抱怨ErlangCookie文件只能由所有者访问

在此方面的任何帮助都将不胜感激

编辑


因此,我添加了上面的卷绑定,当我进行docker组装时,rabbitmq似乎正在将文件放入该目录中。然后我添加了2条消息,我可以通过rabbitmq控制台看到这2条消息位于队列中……但是当我执行docker compose down,然后执行docker compose up时,我希望在创建目录和文件时这2条消息仍然存在,但它们不是,消息计数=0:。

可能它试图访问一些特权用户函数

尝试在yml中将privileged:true部分添加到docker compose服务中,然后再次执行docker compose

如果它可以工作,并且您更喜欢执行某些特权,仅限于RabbitMQ需要的权限,请将privileged:true替换为用于添加或删除特权的capability部分:

cap_add:
  - ALL
  - <WHAT_YOU_PREFER>

cap_drop:
  - NET_ADMIN
  - SYS_ADMIN
  - <WHAT_YOU_PREFER>
欲了解更多信息,请查看

编辑:

为了在容器出现故障时提供数据持久性,请将volumes部分添加到docker-compose.yml文件中 卷:/your\u host\u dir\u与\u数据:/destination\u在\u docker中


尝试使用管理员帐户我对docker还比较陌生-我如何在docker compose文件中做到这一点?或者我需要以admin的身份运行docker compose命令吗?以admin的身份运行该命令我尝试过,但不幸的是,该命令无效:。无论如何谢谢你。它仍然不起作用:但是谢谢你。我试图做的是让RabbitMQ在docker中运行,但在重新启动时,它需要在重新启动之前保存消息。在这上面松开头发…尝试将此消息放到绑定卷中。Docker卷是在容器启动时从主机装载到Docker的文件夹,因此,可能具有数据持久性。尝试将volumes:部分添加到docker compose文件中谢谢。我也试过了-看我的编辑。你知道我可能做错了什么吗?非常感谢您的帮助。请在装入卷之前检查容器中是否不存在/var/lib/rabbitmq/mnesia。如果目录存在,则卷未正确装入。1.启动docker而不使用卷:节。2.docker exec-ti bash 3。ls/var/lib/rabbitmq/mnesia如果存在,如果可以配置,请使用另一个不存在的文件夹,例如/var/lib/rabbitmq/mnesia/yourfolder@CraigM我看到您将此标记为正确答案,但您也指出这不起作用:您的最终解决方案/修复方案是什么?