docker-compose 的端口号未更改

2024-01-30

我已经在 docker-compose 中指定了端口映射,但它仍然无法正常工作,我仍然必须使用公开中未指定的端口来访问站点

下面是我的docker-compose.yml

version: '2'

networks:
  default:
    external:
      name: nat

services:

    website:
        build:
            context: '.'
            dockerfile: "./iis.dockerfile"
        ports:
            - 3000:8081

以及相应的dockerfile

FROM microsoft/iis

RUN ["powershell.exe", "Install-WindowsFeature NET-Framework-45-ASPNET"]
RUN ["powershell.exe", "Install-WindowsFeature Web-Asp-Net45"]

ADD www/ c:\\webapp

EXPOSE 8081

RUN powershell New-Website -Name 'web-app' -Port 8081 -PhysicalPath 'c:\webapp' -ApplicationPool '.NET v4.5'

我必须使用以下方式访问应用程序:http://192.168.105.33:8081/,如果我使用端口 3000 执行此操作,则不起作用。

我的上述配置是否缺少任何内容?操作系统:windows server 2016,使用 Windows 容器hyper-v and docker-compose up -d让容器启动并运行...

docker-compose Inspect 给出了以下输出

 "Ports": {
     "8081/tcp": [
         {
             "HostIp": "0.0.0.0",
             "HostPort": "3000"
         }
     ]
 },

docker ps给我以下输出

  eb7aa1e74b7f        website_website     "C:\\ServiceMonitor..."   14 minutes ago      Up 14 minutes       0.0.0.0:3000->

8081/tcp 网站_网站_1

dokcer-compose ps给我以下输出

  Name                    Command             State           Ports
  --------------------------------------------------------------------------------
  website_website_1   C:\ServiceMonitor.exe w3svc   Up      0.0.0.0:3000->8081/tcp

所以我应该能够使用端口 3000 在主机上访问它。


也许你正在启动你的容器docker-compose run?之间的端口映射存在差异docker-compose run and docker-compose up [-d] [service]在这种情况下,端口配置将是被设计忽略 https://docs.docker.com/compose/reference/run/您可以使用--service-ports使用标记或手动公开它们-p flag

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

docker-compose 的端口号未更改 的相关文章

随机推荐