如何使用Windows Containers运行RabbitMQ linux Docker镜像?

问题描述 投票:0回答:1

自从Docker for Windows于10月份发布以来,他们为Windows Containers添加了一个Linux内核,以便与Windows Containers并行运行Linux容器。我很难让它运行起来。以下是来自当前Docker Edge rc的更改日志:

现在可以在Windows容器旁边运行LCOW容器(在Windows RS3 build 16299及更高版本上)。在Windows容器模式下使用--platform=linux在Windows上运行Linux Containers。请注意,LCOW仍然是实验性的,它需要守护进程experimental选项。

我正在使用RabbitMQ image的非修改版本。

执行docker run时:

docker run -d --platform=linux --name rabbit1 -e RABBITMQ_ERLANG_COOKIE='SWQOKODSQALRPCLNMEQG' -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3-management

我没有收到任何错误,容器一启动就停止,日志中包含以下错误:

chmod: changing permissions of '/var/lib/rabbitmq/.erlang.cookie': Operation not permitted

删除cookie参数使其运行几秒钟,直到它在容器日志中:

09:49:48.020 [error] Failed to change mode: eperm
09:49:50.190 [error] Cookie file /var/lib/rabbitmq/.erlang.cookie must be accessible by owner only

这基本上是同一个错误。我尝试将this添加到docker run,但cookie文件是在启动RabbitMQ的过程中创建的。

**在Linux容器模式下,Docker运行良好且花花公子。

环境:

  • Windows 10版本1709
  • Windows PowerShell以管理员身份运行
  • Docker版本18.02.0-ce-rc1,build 5e1d90a
docker rabbitmq windows-container
1个回答
3
投票

RabbitMQ在LCOW上存在一个已知问题,它在文档中说明:https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers#known-app-issues

根据微软的说法:

使用docker run -v绑定装载卷...将文件存储在Windows NTFS文件系统上,因此需要对POSIX操作进行一些转换。某些文件系统操作当前已部分或未实现,这可能会导致某些应用程序不兼容。

© www.soinside.com 2019 - 2024. All rights reserved.