使用Docker IIS容器运行本地网页

时间:2020-02-14 15:24:37

标签: docker iis

使用the default windows IIS dockerpage

运行Docker for Windows以托管本地IIS以测试网页

我不确定要更改允许我运行网页的dockerfile中的哪一部分。我以为我需要更改在dockerfile中简单地编辑COPY命令,但事实并非如此。我需要做什么才能使其运行不同的html文件而不是默认的Windows IIS页面?

编辑:能够通过在C:中搜索wwwroot来找到打开的容器,然后我复制并粘贴了hello world index.html页面,并使其运行

2 个答案:

答案 0 :(得分:1)

您可以按照以下步骤操作:

使用您的网站创建Dockerfile

FROM mcr.microsoft.com/windows/servercore/iis

RUN powershell -NoProfile -Command Remove-Item -Recurse C:\inetpub\wwwroot\*

WORKDIR /inetpub/wwwroot

COPY content/ .

然后您可以构建并运行Docker映像:

$ docker build -t iis-site .
$ docker run -d -p 8000:80 --name my-running-site iis-site

无需在Dockerfile中指定ENTRYPOINT,因为microsoft / iis基本映像已经包含一个入口点应用程序,该应用程序监视IIS万维网发布服务(W3SVC)的状态。

在当前版本中,您无法使用http://localhost从容器主机浏览站点。这是由于WinNAT中的已知行为,以后会解决。在解决该问题之前,您需要使用容器的IP地址。

容器启动后,您需要找到其IP地址,以便可以从浏览器连接到正在运行的容器。您可以使用docker inspect命令执行此操作:

docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" my-running-site

您将看到类似以下的输出:

172.28.103.186

您可以使用IP地址和配置的端口http://172.28.103.186:8000连接正在运行的容器,在所示示例中。 除了静态内容外,IIS还可以运行其他工作负载,包括但不限于ASP.NET,ASP.NET Core,NodeJS,PHP和Apache Tomcat。

有关更多详细信息,您可以参考以下链接:

https://docs.microsoft.com/en-us/aspnet/mvc/overview/deployment/docker-aspnetmvc

https://mcpmag.com/articles/2019/11/20/iis-on-windows-server-containers.aspx

Cannot access an IIS container from browser - Docker

答案 1 :(得分:0)

我已经像下面这样更改了 docker 文件,然后它就完美运行了

FROM mcr.microsoft.com/windows/servercore/iis
RUN powershell -NoProfile -Command Remove-Item -Recurse C:\inetpub\wwwroot\*
WORKDIR /inetpub/wwwroot
RUN mkdir -p content
COPY . content/