自从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运行良好且花花公子。
环境:
RabbitMQ在LCOW上存在一个已知问题,它在文档中说明:https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers#known-app-issues
根据微软的说法:
使用
docker run -v
绑定装载卷...将文件存储在Windows NTFS文件系统上,因此需要对POSIX操作进行一些转换。某些文件系统操作当前已部分或未实现,这可能会导致某些应用程序不兼容。