我需要做什么才能通过 localhost 访问 Docker 托管的本地网站?

问题描述 投票:0回答:1

我已经使用 Docker 在我的本地主机上托管这个网站两年了。我有一个好主意,为另一个项目安装 IIS,该项目接管了本地主机。

我已经关闭了WAS和W3SVC服务并重新启动了我的计算机; IIS 服务器已关闭,但我仍然无法像以前一样通过 localhost 访问 Docker 托管的内容。我还需要改变什么?

谢谢。

windows docker iis localhost
1个回答
0
投票

IIS 和 Docker 可以在本地主机上共存,但它们不能同时使用相同的端口。如何处理这个问题取决于您在 Docker 和 IIS 中配置运行的内容。

我已经关闭了 WAS 和 W3SVC...

如何关闭WAS和W3SVC?如果您停止该服务,然后重新启动系统,该服务可能会在重新启动后重新启动。要禁用服务在重新启动后启动,您需要将服务的 StartupType 设置为“已禁用”。

您可以通过 Powershell(以管理员身份)使用以下命令查看当前是否有任何进程正在侦听端口 80:

netstat -b -a -n -o | Select-String ':80'
。 (
netstat -b -a -n -o
是一个内置命令,可显示所有侦听端口)。如果有东西正在侦听端口 80,则这是预期的输出:

  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4
  TCP    [::]:80                [::]:0                 LISTENING       4

如果你

Stop-Service W3SVC -Force
停止IIS(暂时忽略WAS)并再次运行上面的netstat命令,你将不会得到任何输出,因为它是W3SVC服务打开了端口80(所以现在你的docker可以工作,因为IIS 服务未在端口 80 上运行/侦听)。


要正确禁用 IIS 等服务...

您可以像这样检查 WAS 和 W3SVC 服务的 StartupType 和 Status:

Get-Service WAS,W3SVC | Select-Object -Property Name,StartType,Status

默认 IIS 安装后显示:

Name  StartType  Status
----  ---------  ------
W3SVC Automatic Running
WAS      Manual Running

要停止并防止自动重启,您可以使用以下命令:

Stop-Service W3SVC -Force
Stop-Service WAS -Force
Set-Service W3SVC -StartupType Disabled
Set-Service WAS -StartupType Disabled

如果 StartupType 和 Status 分别为“禁用”/“停止”,即使重新启动后,IIS 也不会尝试侦听端口 80。

Get-Service WAS,W3SVC | Select-Object -Property Name,StartType,Status

Name  StartType  Status
----  ---------  ------
W3SVC  Disabled Stopped
WAS    Disabled Stopped

注意:如果您愿意,您可以使用

Services control panel
通过 GUI 管理上述内容 - 您可以从服务上的右键菜单启动/停止,并使用属性对话框访问启动类型选项。

注意:如果您想重新激活 IIS,只需按相反顺序撤消步骤即可:

Set-Service WAS -StartupType Manual
Set-Service W3SVC -StartupType Manual
Start-Service W3SVC
  • 假设当前没有任何东西使用端口 80,IIS 将启动
  • 您不需要手动启动WAS,只要其启动类型不为Disabled,W3SVC就会为您启动WAS。
  • StartupType 可以是禁用、手动或自动。将 WAS/W3SVC 保留为手册可能适合您,因为您可以根据需要
    Start-Service W3SVC
    /
    Stop-Service W3SVC
    。但是,如果 IIS 中安装了强制 IIS 自动启动的内容,您应该禁用这些服务以避免出现问题。
© www.soinside.com 2019 - 2024. All rights reserved.