2016-12-14 97 views
2

我指定端口映射,但它仍然没有工作,我仍然要访问的网站暴露端口号不会改变泊坞窗,谱写出坞窗,撰写

下面

是我docker-compose.yml

version: '2' 

networks: 
    default: 
    external: 
     name: nat 

services: 

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

和corrosponding 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端口它做的母鹿没有工作。

我上面的配置中是否有缺失? OS:windows server 2016,使用Windows集装箱,hyper-vdocker-compose up -d得到容器和运行...

泊坞窗,撰写考察给我下面的输出

"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 give me bel流输出

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

所以我使用端口3000

+0

是您的主机的IP 192.168.105.33或泊坞窗容器暴露呢? – user3012759

+0

它的码头集装箱的IP,我没有托管我的机器上的网站...即时通讯托管它在码头集装箱 – harishr

+0

'ports'将端口从容器映射到您的主机,所以很可能你只需要去'http: // localhost:3000'并在那里找到你的页面 – user3012759

回答

0

也许你与docker-compose run启动你的容器应该能够访问它的主机?还有在这种情况下docker-compose rundocker-compose up [-d] [service]之间的端口映射的不同端口配置将ignored by design 您可以使用--service-ports标志或使用手动-p标志

+0

我正在使用'docker-compose up -d'来运行容器网络 – harishr

+0

@entre你有没有通过docker检查你的容器? '?也许在'docker-compose logs'或'docker logs'中看过? –