如何使用Windows Containers运行RabbitMQ linux Docker镜像?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Windows Containers运行RabbitMQ linux Docker镜像?相关的知识,希望对你有一定的参考价值。
自从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
RabbitMQ在LCOW上存在一个已知问题,它在文档中说明:https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers#known-app-issues
根据微软的说法:
使用
docker run -v
绑定装载卷...将文件存储在Windows NTFS文件系统上,因此需要对POSIX操作进行一些转换。某些文件系统操作当前已部分或未实现,这可能会导致某些应用程序不兼容。
以上是关于如何使用Windows Containers运行RabbitMQ linux Docker镜像?的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server 2016 Modern Application Platform Features -3: Containers
docker import with Docker for Windows using Linux containers no space left on device error with Stor