更新 3(解决方案):
我在我的主机上安装了最新的 Windows 更新,并指定了确切的服务器核心映像以匹配我更新的 Windows Server 版本:
mcr.microsoft.com/windows/servercore:10.0.17763.973
运行容器时,一切都按预期工作。
原始问题:
我无法弄清楚为什么nginx没有在我在 Windows Server 2019 上运行的容器中启动。
没有向 nginx 写入任何内容,并且使用此答案error.log
检查系统事件不会提供有关 nginx 的任何信息。
当我直接在服务器上运行 nginx(即没有容器)时,它启动得很好。
以下是 dockerfile 的内容:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
WORKDIR C:/nginx
COPY /. ./
CMD ["nginx"]
我使用以下命令运行容器:
docker run -d --rm -p 80:80 --name nginx `
-v C:/Data/_config/nginx/conf:C:/nginx/conf `
-v C:/Data/_config/nginx/temp:C:/nginx/temp `
-v C:/Data/_config/nginx/logs:C:/nginx/logs `
nginx-2019
如果我exec
进入正在运行的容器,我可以看到目录结构符合预期:
Microsoft Windows [Version 10.0.17763.1040]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\nginx>dir
Volume in drive C has no label.
Volume Serial Number is 72BD-907D
Directory of C:\nginx
02/27/2020 06:05 AM <DIR> .
02/27/2020 06:05 AM <DIR> ..
02/27/2020 06:05 AM <DIR> conf
02/27/2020 05:11 AM <DIR> contrib
02/27/2020 05:11 AM <DIR> docs
02/27/2020 05:11 AM <DIR> html
02/27/2020 05:55 AM <DIR> logs
02/27/2020 05:14 AM <DIR> conf
01/21/2020 03:30 PM 3,712,512 nginx.exe
01/21/2020 04:41 PM <DIR> temp
1 File(s) 3,716,608 bytes
9 Dir(s) 21,206,409,216 bytes free
更新 1:
作为故障排除过程的一部分,我在 Azure 上启动了一个干净的 VM,在安装 Docker 并使用完全相同的文件重新创建 Docker 映像后,它按预期启动。
这意味着该问题特定于我的服务器,而不是一般问题。
更新 2:
通过--rm
从运行命令中删除,我通过docker ps -a
在容器退出后运行找到以下信息:
退出 (3221225785) 4 秒前
我找不到有关退出代码含义的任何信息。