Docker 运行 纳米服务器未启动

Docker run nanoserver not starting

我正在尝试使用此命令 运行 windows 服务器 2016(ec2 实例或 Azure VM)上的 nanoserver 图像:

docker run -d --name nanoms microsoft/nanoserver:latest

编辑:实际上它不仅仅是nanoserver,我遇到了同样的问题运行ning microsoft/windowsservercore:latest.

但是如果我然后 运行 (docker ps -a) 然后它显示状态为已退出。 Docker logs nanoms - 只显示 "c:>"(所以没有错误)

如果我使用 -it 而不是 -d 那么它会显示一些 'stuff' 并挂起直到我按下 ctrl- C,居然已经启动了,我可以'login'!

'stuff' 显示:

[2J[H[1H[37;40m[K[2H[K[3H[K[4H[K[5H[K[6H[K[7H[K[8H[K[9H[K[10H[K[11H[K[12H[K [13H[K[14H[K[15H[K[16H[K[17H[K[18H[K[19H[K[20H[K[21H[K[22H[K[23H[K[24H[K[25H[K [1;1HMicrosoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. All rights reserved.

edit 2:当我在 powershell 中 运行 命令时,上面的 'stuff' 发生了。如果我 运行 cmd 提示符中的命令然后使用 -it 成功连接。但是 -d 仍然总是退出。

我这里有什么地方做错了吗? windows server 2016 和 docker 有什么特别之处意味着 -d 不起作用吗?我认为使用 -d 启动容器有点基础...

我试过重启服务器,结果一样。

nanoserver 是一个基于 10.0.14393.693 的映像(.823 有一些问题)。

=================

重现问题:

  1. 启动 EC2 实例或 Azure VM,OS == Windows Server 2016 - 带容器。
  2. 进入 RDP,启动 CMD window(或 Powershell)
  3. 运行 命令:docker 运行 -d microsoft/nanoserver
  4. 一旦完成 运行 命令:docker ps -a
  5. 验证,容器是活动的还是退出的?

我的期望是它应该是活跃的。我的期望错了吗?

是的,你的期望是错误的:)

容器需要 运行 东西。例如,当您使用 -it 参数 运行 时创建的命令提示符。明确指定 popwershell 可能更适合您...

docker run --name nanoms microsoft/nanoserver:latest -it powershell

默认的 Nanoserver 容器 运行 CMD 只需添加 -d -it 瞧......

docker run -d -it mcr.microsoft.com/windows/nanoserver:1803