2016-12-14 131 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'中看過? –

相關問題