docker - 使用 docker IIS 容器运行本地网页
问题描述
运行 Docker for windows 以托管本地 IIS 以测试网页,使用默认的 windows IIS dockerpage
我不确定要更改 dockerfile 中的哪一部分以允许我运行我的网页。简单地编辑 dockerfile 中的 COPY 命令是我认为我需要更改的,但事实并非如此。我需要做什么才能让它运行不同的 html 文件而不是默认的 windows IIS 页面?
编辑:能够通过在我的 C: 中搜索 wwwroot 来找到打开的容器,我复制并粘贴了我的 hello world index.html 页面并且能够让它运行
解决方案
您可以按照以下步骤操作:
使用您的网站创建 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
推荐阅读
- regex - perl 在特定模式后提取字符串
- python - 具有廉价梯度和已知最小值的函数的优化
- swift - 如何在 SwiftUI 中使列表单元格的背景透明?
- javascript - Javascript 为最终用户清除浏览器缓存
- compare - Octave如何有效地比较矩阵元素
- python - 在不创建 csv 本地文件的情况下将 pandas 数据框上传到 azure blob
- javascript - 在 chart.js 的 yaxis 上显示名称
- c# - ConnectionString 属性尚未初始化 将数据插入数据库时出错
- r - 通过遍历文件夹来更改标识符——R
- java - 带圆圈的项目符号 ⦿ 未出现在 API < 21 的 android WebView 上