2016-09-08 59 views
4

我一直在使用ASP DOTNET開發的Web應用程序,目前我有它運行在IIS上有反正我可以在泊塢窗容器中運行相同的應用程序,我可以運行託管在容器中的IIS上託管的dotnet應用程序嗎?

我是比較新的泊塢窗,我已經逛了一下打而且我對Docker撰寫很熟悉,所以我想知道是否可以(碼頭化)我開發的應用程序。

我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運行運行

+1

微軟已經發布了他們的dotnet代碼作爲樞紐的圖像:https://hub.docker.com/r/microsoft/dotnet/ – BMitch

+0

據我所知,我們可以運行的應用程序,但可以我在IIS上運行它?我想將這個容器像一個包含所有文件和依賴項的包一起發貨 –

+0

我有一個配置文件和應用程序的依賴項,所以我將所有這些複製到容器內的一個文件夾中 我試圖創建一個dockerfile,但容器拒絕在後臺運行該應用程序的端口 –

回答

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

+0

感謝您的迴應..顯然,我一直在嘗試在Linux容器中運行IIS,IIS不支持這樣的問題。 我已經在Windows 10中完成了它,似乎工作良好。 謝謝。 –

+1

現在我有一個新問題,其中我一直試圖從容器內部訪問組織的mssql服務器(「運行該應用程序的容器」),但該應用似乎無法訪問此服務器。當我用Visual Studio進行嘗試時它工作正常,但是當我在容器中運行應用程序時,我遇到了連接問題。 –

+0

我建議您打開一個關於它的新問題 –

相關問題