自从 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