<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 容器化ASP.NET Core應用 本文參考了[示例](https://docs.docker.com/engine/examples/dotnetcore/)。 ## 最簡單的Web API應用 .net core作為微軟新一代的跨平臺開源環境,無論是官方還是社區都對其的容器化有極大的熱情。 首先,我們利用dotnet CLI工具創建一個新的Web API應用,并在本地測試一下。 ```PowerShell # 新建項目 dotnet new webapi -o aspnetapp # 切換目錄 cd aspnetapp # 構建 dotnet build # 運行 dotnet run ``` 打開瀏覽器鍵入[http://localhost:5000/api/values](http://localhost:5000/api/values),我們可以看到返回的樣例。 ![docker-3-0](https://box.kancloud.cn/8035adde9e0bb9c0afc6231d15ed1b4b_751x397.png) 顯然,和之前的python應用不同,.net core需要經過build才能運行。為了方便build,微軟官方也推出了一個build用的鏡像`microsoft/aspnetcore-build`。 這里,參考示例,我們利用`microsoft/aspnetcore-build`來build應用,并將輸出復制到`microsoft/aspnetcore`中來運行。 ```Dockerfile # build鏡像 FROM microsoft/aspnetcore-build AS build-env WORKDIR /app # 還原Nuget包 COPY *.csproj ./ RUN dotnet restore # 復制所有文件 COPY . ./ # 發布應用 RUN dotnet publish -c Release -o out # 運行鏡像 FROM microsoft/aspnetcore WORKDIR /app # 從build鏡像中復制輸出 COPY --from=build-env /app/out . # 設置入口 ENTRYPOINT [ "dotnet", "aspnetapp.dll" ] ``` 然后,就是`docker build`了?不,在這里我們還要多加一步,因為之前我們已經在本地運行過了,.net core會在當前目錄下創建**/bin**和**/obj**來儲存二進制文件和中間文件,而這部分在我們構建鏡像時是不需要的,我們可以通過**.dockerignore**來忽略他們(就和**.gitignore**一樣)。 在當前目錄下,創建一個**.dockerignore**文件,鍵入以下內容。 ```txt /bin /obj ``` 最后,就是我們熟悉的`docker build -t demo:aspnetapp .`。但注意在build結束后,你會發現除了我們指定生成的demo:aspnetapp鏡像外還有一個`<none>:<none>`的dangling鏡像,這個鏡像就是我們在**Dockerfile**前半部分中用的build環境,如果覺得不再需要了,可以通過`docker image prune`來刪除所有dangling鏡像。 最后的最后,注意一個細節。。也不清楚microsoft/aspnetcore中的環境是怎么配置的,按照以上步驟生成的鏡像在運行時監聽的是80端口。所以,在啟動實例時,記得用`-p 80:80`來映射80端口。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看