RabbitMQ Docker容器错误:读取/var/lib/RabbitMQ/.erlang.cookie时出错:eacces
我在Windows Server 1709(Windows Server core edition)上从Docker内部运行RabbitMQ Docker容器错误:读取/var/lib/RabbitMQ/.erlang.cookie时出错:eacces,docker,docker-compose,rabbitmq,docker-for-windows,docker-desktop,Docker,Docker Compose,Rabbitmq,Docker For Windows,Docker Desktop,我在Windows Server 1709(Windows Server core edition)上从Docker内部运行rabbitmq时遇到问题 我正在使用docker compose创建rabbitmq服务。如果我在本地计算机上运行docker compose,一切正常。当我在windows服务器上运行docker compose(docker已设置为windows上的docker lcow支持)时,我在日志中多次出现上述错误。也就是说,这个错误是: 读取/var/lib/rabbitm
rabbitmq
时遇到问题
我正在使用docker compose创建rabbitmq服务。如果我在本地计算机上运行docker compose,一切正常。当我在windows服务器上运行docker compose(docker已设置为windows上的docker lcow支持)时,我在日志中多次出现上述错误。也就是说,这个错误是:
读取/var/lib/rabbitmq/.erlang.cookie时出错:eacces
值得注意的是,即使我只是手动拉取rabbitmq并使用docker run-itd--rm--name rabbitmq rabbitmq:3-management手动运行,我也会收到此错误
在容器崩溃和退出之前,我能够猛击容器一小段时间,我看到以下情况:
root@localhost:~# ls -la
---------- 2 root root 20 Jan 5 12:18 .erlang.cookie
在我的本地主机上,权限如下所示(正确):
我不明白为什么服务器上的权限结构被破坏
这是否可能是具有Docker for Windows的Windows服务器1709上的LCOW支持的问题?还是rabbitmq的问题
此处使用的docker compose文件仅供参考:
version: "3.3"
services:
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
hostname: localhost
ports:
- "1001:5672"
- "1002:15672"
environment:
- "RABBITMQ_DEFAULT_USER=user"
- "RABBITMQ_DEFAULT_PASS=password"
volumes:
- d:/docker_data/rabbitmq:/var/lib/rabbitmq/mnesia
restart: always
这里是发生错误的docker信息,仅供参考
docker信息
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 1
Server Version: 17.10.0-ee-preview-3
Storage Driver: windowsfilter (windows) lcow (linux)
LCOW:
Logging Driver: json-file
Plugins:
Volume: local
Network: ics l2bridge l2tunnel nat null overlay transparent
Log: awslogs etwlogs fluentd json-file logentries splunk syslog
Swarm: inactive
Default Isolation: process
Kernel Version: 10.0 16299 (16299.15.amd64fre.rs3_release.170928-1534)
Operating System: Windows Server Datacenter
OSType: windows
Architecture: x86_64
CPUs: 4
Total Memory: 7.905GiB
Name: ServerName
Docker Root Dir: D:\docker-root
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
docker版本
Client:
Version: 17.10.0-ee-preview-3
API version: 1.33
Go version: go1.8.4
Git commit: 1649af8
Built: Fri Oct 6 17:52:28 2017
OS/Arch: windows/amd64
Server:
Version: 17.10.0-ee-preview-3
API version: 1.34 (minimum version 1.24)
Go version: go1.8.4
Git commit: b8571fd
Built: Fri Oct 6 18:01:48 2017
OS/Arch: windows/amd64
Experimental: true
它看起来像是在windows上安装host dir,而不是在windows上安装。您能提供您在linux上使用的撰写文件吗?安装时请仔细观察。这是bot-rabbit的问题,我们没有linux机器,因此没有linux编写文件。尽管/docker\u data/rabbitmq:/var/lib/rabbitmq/mnesia
,但linux装载上的更改看起来是这样的。我担心的是本地Windows10工作得很好。在Windows Server 2016(1709更新)上执行此操作时,它不起作用。此问题是否解决?其他问题似乎建议在cookie文件上使用CHMOD 600,可能在Dockerfile中作为运行cmd。遗憾的是,我们一直没有解决这个问题。如果我记得的话,我们确实尝试了chmod600,但我认为一旦容器运行,它就会恢复到400。这可能是Windows Server 2016(1709更新)特别存在的问题。不幸的是,此项目已经结束,我无法再访问Windows Server版本,因此无法再次尝试复制它:(
Client:
Version: 17.10.0-ee-preview-3
API version: 1.33
Go version: go1.8.4
Git commit: 1649af8
Built: Fri Oct 6 17:52:28 2017
OS/Arch: windows/amd64
Server:
Version: 17.10.0-ee-preview-3
API version: 1.34 (minimum version 1.24)
Go version: go1.8.4
Git commit: b8571fd
Built: Fri Oct 6 18:01:48 2017
OS/Arch: windows/amd64
Experimental: true