docker编号不会更改为docker组成
我已经在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/
: http://192.168.105.33:8081/
: http://192.168.105.33:8081/
,如果我使用端口3000它不起作用。
在上面的configuration中是否有什么缺失? 操作系统: windows server 2016
,与hyper-v
和docker-compose up -d
使用Windows容器docker-compose up -d
获取容器和运行…
docker工人检查给我下面的输出
"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在主机上访问它。
也许你用docker-compose run
启动你的容器? docker-compose run
和docker-compose up [-d] [service]
port之间的端口映射是有区别的。 docker-compose up [-d] [service]
在这种情况下,端口configuration将被devise忽略。您可以使用--service-ports
标志或手动暴露它们-p
旗