0

自从 10 月份某个 Docker for Windows 发布以来,他们在 Windows Containers 中添加了一个 linux 内核,以便与 Windows Containers 一起运行 Linux 容器。我很难让它运行。以下来自当前 Docker Edge rc 的 changelog:

LCOW 容器现在可以在 Windows 容器旁边运行(在 Windows RS3 build 16299 及更高版本上)。--platform=linux在 Windows 容器模式下使用以在 Windows 上运行 Linux 容器。请注意,LCOW 仍处于试验阶段,它需要守护程序experimental选项。

我正在使用RabbitMQ 图像的未修改版本。

执行 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

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

** 它在 Linux 容器模式下与 Docker 一起运行良好且花花公子。

环境:

  • 视窗 10 版本 1709
  • Windows PowerShell 以管理员身份运行
  • Docker 版本 18.02.0-ce-rc1,构建 5e1d90a
4

1 回答 1

3

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

据微软称:

Bind mount volumes with docker run -v... 将文件存储在 Windows NTFS 文件系统上,因此 POSIX 操作需要一些转换。某些文件系统操作当前部分实现或未实现,这可能会导致某些应用程序不兼容。

于 2018-03-01T14:26:51.940 回答