无法在 Windows IIS Docker 容器中启动交互式会话
Cannot launch interactive session in Windows IIS Docker container
我正在使用 AWS "Windows Server 2016 Base with Containers" 图像 (ami-5e6bce3e)。
使用 docker info
我可以确认我拥有最新版本(服务器版本:1.12.2-cs-ws-beta)。
从 Powershell(运行宁作为管理员)我可以成功 运行 "microsoft/windowsservercore" 容器在交互模式下,连接到容器中的 CMD:
docker run -it microsoft/windowsservercore cmd
当我尝试在交互模式下 运行 "microsoft/iis" 容器时,尽管我能够连接到 IIS(通过浏览器),但我从未连接到容器中的交互式 CMD 会话.
docker run -it -p 80:80 microsoft/iis cmd
相反,我只是得到:
Service 'w3svc' started
使用另一个 Powershell window,我可以:
docker container ls
...然后查看我的容器 运行ning。
尝试附加锁,但从未尝试 returns。
之后我切换了区域,发现每个区域都有不同的 AMI:
- us-east-1: ami-d08edfc7
- us-west-2: ami-5e6bce3e
...这两个结果相同
使用了相关 links:
更新
使用以下 link 我能够基于服务器基础创建我自己的 Dockerfile 并安装 IIS,这似乎工作正常。
这不是 AWS AMI 的问题,这是由于 Microsoft IIS Docker文件的编写方式/对 Docker 而言是新的。
Link to Microsoft's IIS DockerFile
最后一行(第7行):
ENTRYPOINT ["C:\ServiceMonitor.exe", "w3svc"]
Difference between CMD and ENTRYPOINT
因此,由于此 Docker 文件使用 ENTRYPOINT,要启动交互式 powershell 会话,请使用以下命令:
docker run --entrypoint powershell -it -p 80:80 microsoft/iis
请注意,“--entrypoint”标志似乎需要在 运行 之后,因为这不起作用:
docker run -it -p 80:80 microsoft/iis --entrypoint powershell
Here is another reference link regarding ENTRYPOINT and CMD differences
我正在使用 AWS "Windows Server 2016 Base with Containers" 图像 (ami-5e6bce3e)。
使用 docker info
我可以确认我拥有最新版本(服务器版本:1.12.2-cs-ws-beta)。
从 Powershell(运行宁作为管理员)我可以成功 运行 "microsoft/windowsservercore" 容器在交互模式下,连接到容器中的 CMD:
docker run -it microsoft/windowsservercore cmd
当我尝试在交互模式下 运行 "microsoft/iis" 容器时,尽管我能够连接到 IIS(通过浏览器),但我从未连接到容器中的交互式 CMD 会话.
docker run -it -p 80:80 microsoft/iis cmd
相反,我只是得到:
Service 'w3svc' started
使用另一个 Powershell window,我可以:
docker container ls
...然后查看我的容器 运行ning。
尝试附加锁,但从未尝试 returns。
之后我切换了区域,发现每个区域都有不同的 AMI:
- us-east-1: ami-d08edfc7
- us-west-2: ami-5e6bce3e
...这两个结果相同
使用了相关 links:
更新
使用以下 link 我能够基于服务器基础创建我自己的 Dockerfile 并安装 IIS,这似乎工作正常。
这不是 AWS AMI 的问题,这是由于 Microsoft IIS Docker文件的编写方式/对 Docker 而言是新的。
Link to Microsoft's IIS DockerFile
最后一行(第7行):
ENTRYPOINT ["C:\ServiceMonitor.exe", "w3svc"]
Difference between CMD and ENTRYPOINT
因此,由于此 Docker 文件使用 ENTRYPOINT,要启动交互式 powershell 会话,请使用以下命令:
docker run --entrypoint powershell -it -p 80:80 microsoft/iis
请注意,“--entrypoint”标志似乎需要在 运行 之后,因为这不起作用:
docker run -it -p 80:80 microsoft/iis --entrypoint powershell
Here is another reference link regarding ENTRYPOINT and CMD differences