【问题标题】:port number not change for docker-composedocker-compose 的端口号不会改变
【发布时间】:2017-04-29 15:53:53
【问题描述】:

我已经在 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,使用带有hyper-vdocker-compose up -d 的Windows 容器来启动并运行容器...

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 website_website_1

dokcer-compose ps 给我下面的输出

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

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

【问题讨论】:

  • 是 192.168.105.33 你的主机或 docker 容器的 IP?
  • 它是 docker 容器的 ip,我没有在我的机器上托管站点...我将它托管在 docker 容器中
  • ports 将端口从容器映射到您的主机,因此您很可能只需转到 http://localhost:3000 并在那里找到您的页面
  • 您是否使用 docker network ls 检查过您的网络?您明确指定了 nat 网络。您是否创建了自定义或使用默认值? docker ps 的输出是什么?
  • 这可能是相关的。 github.com/docker/docker/issues/21558

标签: docker docker-compose portforwarding


【解决方案1】:

也许您正在使用docker-compose run 启动您的容器? docker-compose rundocker-compose up [-d] [service] 之间的端口映射存在差异,在这种情况下,端口配置将为ignored by design 您可以使用--service-ports 标志或使用-p 标志手动公开它们

【讨论】:

  • 我正在使用docker-compose up -d 运行容器网络
  • @entre 你用docker inspect检查你的容器了吗?也许看过docker-compose logsdocker logs
猜你喜欢
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多