使用the default windows IIS dockerpage
运行Docker for Windows以托管本地IIS以测试网页我不确定要更改允许我运行网页的dockerfile中的哪一部分。我以为我需要更改在dockerfile中简单地编辑COPY命令,但事实并非如此。我需要做什么才能使其运行不同的html文件而不是默认的Windows IIS页面?
编辑:能够通过在C:中搜索wwwroot来找到打开的容器,然后我复制并粘贴了hello world index.html页面,并使其运行
答案 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
答案 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/