【问题标题】:Can I Run a dotnet app which is hosted on IIS in a docker container?我可以在 Docker 容器中运行托管在 IIS 上的 dotnet 应用程序吗?
【发布时间】:2016-09-08 15:40:04
【问题描述】:

我已经使用 asp dotnet 开发了一个 Web 应用程序,目前我在 IIS 上运行它,无论如何我可以在 docker 容器中运行相同的应用程序,

我对 Docker 比较陌生,我玩过一些,我熟悉 docker compose ,所以我想知道我是否可以(dockerize)我开发的应用程序。

我的 Dockerfile 现在看起来像:

#Making a dotnet container
FROM microsoft/dotnet:latest

#Make a directory
WORKDIR /app

#copy dll files and other dependencies
COPY . /app

#dotnet run should run the app
ENTRYPOINT ["DOTNET","RUN"]

据我了解,这会在我的 dotnet 容器中创建一个目录并复制当前文件夹中的文件,应用程序将在 dotnet run 上运行

【问题讨论】:

  • Microsoft 已将其 dotnet 代码作为图像发布在集线器上:hub.docker.com/r/microsoft/dotnet
  • 我知道我们可以运行一个应用程序,但我可以在 IIS 上运行它吗?我想像一个包含所有文件和依赖项的包一样运送这个容器
  • 我有一个应用程序的配置文件和依赖项,所以我将所有这些复制到容器内的一个文件夹中,我尝试创建一个 dockerfile,但容器拒绝在后台端口上运行应用程序跨度>

标签: asp.net windows iis docker docker-compose


【解决方案1】:

你需要稍微改变一下你的 Dockerfile,试试这个:

#Making a dotnet container
FROM microsoft/iis

SHELL ["powershell"]

RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \  
    Install-WindowsFeature Web-Asp-Net45

RUN Remove-WebSite -Name 'Default Web Site'  
RUN New-Website -Name 'app' -Port 80 \  
    -PhysicalPath 'c:\app' -ApplicationPool '.NET v4.5'

#copy dll files and other dependencies
COPY app app

#dotnet run should run the app
CMD ["ping", "-t", "localhost"]  

测试一下

docker build -t app .  
docker run --name app -d -p 80:80 app
docker inspect --format="{{.NetworkSettings.Networks.nat.IPAddress}}" app

它会给你一个 ip 只需在你的浏览器中测试它。

更多信息:Run IIS + ASP.NET on Windows 10 with Docker

【讨论】:

  • 感谢您的回复.. 显然我一直在尝试在 IIS 不支持的 Linux 容器中运行 IIS,因此出现了问题。我已经在 Windows 10 中完成了它,并且似乎运行良好。谢谢。
  • 现在我有一个新问题,我一直在尝试从容器(“运行应用程序的容器”)内部访问我组织的 mssql 服务器,但应用程序似乎不是能够访问此服务器。当我使用 Visual Studio 尝试它时它工作正常,但是当我在容器中运行应用程序时,我遇到了连接问题。
  • 我建议你打开一个关于它的新问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2013-04-24
相关资源
最近更新 更多