標籤:刪除 需要 container publish 令行 互動 for png 資訊
安裝Docker for Windows https://store.docker.com/editions/community/docker-ce-desktop-windows
要想將一個ASP.NET Core 網站部署到Docker,首先項目必須添加Docker支援,說白了就是產生Dockerfile,有兩種方式第一種是在建立項目的時候
還有一種方式就是通過項目右鍵→添加→Docker 支援
這是添加Docker 支援後產生的Dockerfile
FROM microsoft/aspnetcore:2.0ARG sourceWORKDIR /appEXPOSE 80COPY ${source:-obj/Docker/publish} .ENTRYPOINT ["dotnet", "WebApplication1.dll"]
點擊這個Docker按鈕,如果你本地沒有aspnetcore鏡像會先拉取這個鏡像,緊接著將Webapplication1這個Web應用程式Bulid成一個鏡像(Image),這個時候通過命令查看有兩個鏡像(Image)webapplication1和microsoft/aspnetcore 還有一個正在啟動並執行容器。
通過inspect查看容器的詳細資料
docker inspect 6fce4391165a
需要強調一點是上面的Dockerfile並不能直接拿到產生環境上用,而且一旦在VS裡停止調試以後網站將會不能訪問,我把剛才那個容器成為互動式容器不知道理解的對不對,先刪除剛才的容器和鏡像。
先發布一下我們的應用程式,如果發布到檔案系統預設應該是bin\Release\PublishOutpuy 這個路徑我就不改了,點擊發布。發布完成後將根目錄下的Dockerfile拷貝到發布目錄,並進行修改
FROM microsoft/aspnetcore:2.0WORKDIR /appEXPOSE 80COPY . .ENTRYPOINT ["dotnet", "WebApplication1.dll"]
使用build命令手動建立鏡像,在發布目錄下開啟命令列視窗,執行下面的命令
docker build -t webapp:dev .
使用webapp鏡像建立兩個容器
兩個執行個體已經跑起來了,想要運行更多的執行個體run一下就行了。
上面兩個IP是容器的IP,一般都是容器的連接埠映射宿主機的連接埠,用宿主機IP:連接埠號碼去訪問,Nginx或HAProxy關聯每個宿主機:連接埠號碼,所以在建立容器的時候都會加個-p參數
docker run -p 8080:80 webapp:dev
NET Core 2.0 in Docker on Windows Containers