无法从浏览器访问 IIS 容器 - Docker

2023-12-09

Windows 版本:Windows Server 2016

适用于 Windows 的 Docker 版本:18.09.0

image

我尝试按照中的步骤操作https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-images

我在 c:\Build 上有一个 Docker 文件:

FROM microsoft/iis
RUN echo "Hello World - Dockerfile" > c:\inetpub\wwwroot\index.html

请注意,我尝试过使用FROM microsoft/iis:10.0.14393.206 as well

因此,我使用具有管理员权限的 powershell 运行:

docker build -t imagename c:\Build

然后我跑了:

docker run -d -p 8000:80 --name container imagename ping -t localhost

enter image description here

以上步骤都可以,但是我无法访问该网站,

我尝试了每种组合,例如: ipconfig 中的 IP 地址:8000 或 80;检查的 IP 地址:8000 / 80。 请注意,我还设置了防火墙以允许端口 8000

enter image description here

但这一切都失败了。

然后,我上网查了一下,发现居然可以调用bash。因此,我运行了 exec,但是,发生了一些奇怪的事情:

enter image description here

我不确定这是否意味着容器无法工作? 但检查和容器显示它应该可以工作。

fyi network: enter image description here

inspect container: enter image description here enter image description here enter image description here

我真的无法从网上找到任何解决方案

任何建议都会有帮助,谢谢


UPDATE:我让它可以使用下面的配置以及远程 IIS 访问。确保防火墙没有阻止 docker 连接到您的本地 IP。此外,我们案例中的应用程序是网站的一部分,因此我们需要使用 Webadministration 将其部署为应用程序以使其正常工作。日志和其他一切现在都正常工作,我们有一个正在运行的示例。

我也一直在使用 docker 容器,并且在部署时也遇到了类似的问题。我使用的是服务器核心映像,因为它上面有完整的 powershell,但我像这样定义了 dockerfile,以便在进行测试时构建映像,因为应用程序似乎无法启动。该应用程序尚未进入核心,但很快就会迁移到核心,以使工作图像更小。此示例中需要注意的另一件事是,即使在我的命令中定义了应用程序池,也没有创建应用程序池。这样,您就可以使用iis远程管理工具进行远程连接,并检查到目前为止docker内的服务器设置情况如何:

##Pull the base image to use
FROM mcr.microsoft.com/windows/servercore/iis
#Enable verbose output in case of errors
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
#install all needed features of IIS
RUN Install-WindowsFeature -name Web-Server -IncludeManagementTools ;\
    Install-WindowsFeature -name Web-Basic-Auth ;\
    Install-WindowsFeature -name Web-Windows-Auth ;\
    Install-WindowsFeature -name Web-Net-Ext45 ;\
    Install-WindowsFeature -name Web-ISAPI-Ext ;\
    Install-WindowsFeature -name Web-ISAPI-Filter ;\
    Install-WindowsFeature -name Web-WHC ;\
    Install-WindowsFeature NET-Framework-45-ASPNET ; \
    Install-WindowsFeature Web-Asp-Net45 ;\
    Install-WindowsFeature -Name Web-Mgmt-Service ;\
    Install-WindowsFeature -name Web-Mgmt-Tools ;\
    Install-WindowsFeature -name Web-Mgmt-Compat ;\
    Install-WindowsFeature -name Web-Scripting-Tools ;\
    Dism /online /enable-feature /featurename:IIS-ManagementService /all ;\
    ##Still inside the same run command, enable remote management for IIS on docker
    New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1 -Force ;\
    Get-Service -Name WMSVC | Start-Service ;\
    Set-Service –Name WMSVC –StartupType 'Automatic' ;\
    ##In the same run Command add the user and password for IIS remote management
        net user myuser superP@ss123 /ADD ;\
        net localgroup administrators myuser /add

    COPY . myapp
    RUN New-WebAppPool myapp
#The configStore is an application of a website, so add it as such to the service
RUN Import-Module WebAdministration; Get-Module ;\
    New-Item 'IIS:Sites\Default Web Site\myapp' -physicalPath 'c:\myapp' -ApplicationPool 'myapp' -type 'Application'

EXPOSE 51329 80

我无法回答的另一个问题是,我们是否可以在创建时为 Docker 镜像分配内存大小,而不仅仅是所有者的标准。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从浏览器访问 IIS 容器 - Docker 的相关文章

随机推荐

  • Excel 迭代工作表

    我有一个包含许多工作表的工作簿 如果前面的单元格与给定的字符串匹配 我需要在其中输入一个值 我的代码适用于我需要的工作表 但当它到达一些不需要的工作表 其中也有数据 时 它会出错 调试器突出显示的行是For Each r In Inters
  • 在 HTA 文件中使用 Javascript 从 Windows 注册表中读取/写入

    我目前正在尝试编写 Javascript 以便在 HTA 文件中读取和写入 Windows 注册表 这是我当前用来编写的代码 writeInRegistry function sRegEntry sRegValue Regpath HKEY
  • python pickle.dumps 断言错误

    我正在尝试腌制一个包含另一个实例的两个列表的类实例 两个列表中的实例具有引用彼此实例的属性 这是课程 import pickle from copy import copy class Graph def init self self ve
  • 如何匹配所有国际化文本?

    我正在执行一项搜索并销毁亚马逊认为令人厌恶的任何东西的任务 过去我通过使用来处理这个问题iconv从 UTF 8 转换为 latin1 但我不能在这里这样做 因为它被编码为 未知 test lt Gwena xeblle M gt gsub
  • 写入和读取文件时的奇怪行为

    执行以下代码时 第二次读取后 文件将被填充为零 直到达到 4096 字节大 我不明白为什么 f open file txt w f read gives f write Hello f read filled with x00 x00 f
  • System.Data.dll 中发生“System.InvalidOperationException”类型的未处理异常

    我正在 Visual Studio 2008 的 SQL Server 2008 Management Studio 版本中创建与数据库的连接 我在数据库中存储了一个名为 CTable 的过程 并且我想执行它 从 Visual Studio
  • 如何在C++中删除非空目录?

    在 C 中 如何删除目录及其包含的所有文件 我知道有rmdir 但它只会删除非空目录 那么如何首先列出并删除所有包含的文件 我知道使用 Boost Filesystem 应该不难 但我有点想避免仅仅为了这个小任务而构建和依赖它 是的 您通常
  • 时间输入字段[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在构建一个表单来接受时
  • fopen 在 ios 上的奇怪行为

    我试图通过 fopen 创建一个文件然后写入它 但是发生了奇怪的事情 当我将 iPhone 插入 USB 端口时 一切正常 按预期在 tmp 目录或文档目录中创建一个文件 当我拔掉设备并执行同样的操作时 该文件没有出现 我想知道为什么 我使
  • 如何解决 webpack 5 中的 polyfill 问题?

    如果我只是将下一个 js 添加到样板 Visual Studio 2022 React JS 应用程序中 我就会开始收到错误 具体来说 在向导中创建项目 并验证其运行 后 如果我在终端中执行此操作 npm i next 然后将以下行添加到我
  • Xamarin 绑定“包装类型”缺少其本机 ObjectiveC 类

    我正在尝试将外部附件 MSR SDK 绑定到 Xamarin 请注意 这是在设备上 它在模拟器中根本不起作用 我不断收到此错误 Wrapper type iMagProII IMag is missing its native Object
  • 在 NodeJs 中从 type: 'image/png' 转换为 ZPL

    我正在做和尝试的事情 我正在尝试将从 获取的屏幕截图转换为 NodeJS 中的 ZPL 字符串 很像http labelary com viewer html这将获取图像并输出 ZPL 代码 我在做什么 我正在使用一个名为 domToIma
  • 在Python中使用阿拉伯语WordNet作为同义词?

    我试图在句子中找到阿拉伯语单词的同义词 如果这个单词是英语 它就可以完美地工作 并且结果以阿拉伯语显示 我想知道是否可以立即获得阿拉伯语单词的同义词 而无需先用英语编写它 我尝试过 但没有成功 我更喜欢没有 tashkeel nart 而不
  • 为什么 swift 这里使用结构体而不是字符串作为字典键?

    Why UIImagePickerController InfoKey类型是结构而不是字符串 使用结构而不是字符串作为字典键有什么好处 public struct InfoKey Hashable Equatable RawRepresen
  • 通过单击按钮以另一种形式更改文本

    我一直在尝试通过单击 Form2 中的按钮 form2 中的button1 是 STARTA 来更改 Form1 中文本框的文本 现在可能花了 2 个小时 我是编程新手 我一直在寻找类似的问题并发现了很多 但即使在尝试了很多之后我也无法让它
  • 在java中查找天数差异

    在咨询了几个论坛后 我最终使用下面的代码来查找天数差异 但是 我发现逻辑有问题 可能是我的疏忽 我发现 11 至 14 日和 11 至 15 日之间的天数差异是相同的 这怎么可能 Date createdDate new Date 2013
  • 颤动 ListView 滚动到索引不可用

    我需要什么 我想按某个索引滚动列表 我该怎么做 我知道的 scrollToIndex应该从第 n 个索引开始 但是我们如何滚动到任意索引呢 不幸的是 ListView没有内置的scrollToIndex 函数方法 您必须开发自己的方法来测量
  • 如何通过成员变量调用函数?

    玩弄 Rust 我将一些代码提取到一个类中 为了保持它独立但独立的功能 我想保留一个回调函数并稍后调用它 为了保持简单 包括跳过明显的内容fn new 我们有这样的东西 pub struct Toy go fn count i16 gt S
  • 用delphi在屏幕截图中显示鼠标光标

    你好 我正在制作一个delphi xe功能 该功能是截图 一切顺利 但问题是我在任何拍摄的图像上都看不到鼠标光标 代码如下 procedure capturar pantalla nombre string Credits Based on
  • 无法从浏览器访问 IIS 容器 - Docker

    Windows 版本 Windows Server 2016 适用于 Windows 的 Docker 版本 18 09 0 我尝试按照中的步骤操作https learn microsoft com en us virtualization