<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何容器化你的 ASP.Net Core

          共 2431字,需瀏覽 5分鐘

           ·

          2021-03-05 18:56


          Docker 相比 虛擬機(jī) 具有更輕量級(jí),更便捷的特性,為什么這么說呢?虛擬機(jī)通常打包了完整的操作系統(tǒng),而容器只僅僅打包了你的應(yīng)用程序,運(yùn)行環(huán)境及相關(guān)依賴庫,Docker 是一種開源的工具包,幫助你更加方便的構(gòu)建,部署,管理容器。

          容器通常被定義為包含了 代碼和相關(guān)依賴庫 的應(yīng)用程序軟件單元,這里的 單元 意味著應(yīng)用程序運(yùn)行在擁有自己的獨(dú)立環(huán)境上,言外之意就是容器和容器之間是相互隔離的,值得注意的是,雖然容器之間是隔離的,但它們還是共享一個(gè)操作系統(tǒng),這個(gè)操作系統(tǒng)可以是 Windows 或者 Linux,這也是Docker的誘惑點(diǎn)之一,這篇文章我們將會(huì)討論如何在 Windows 平臺(tái)上使用  Docker 部署 ASP.Net Core。

          Windows 上安裝 Docker

          要想在 Windows 上安裝 Docker,可以參考官方鏈接:https://docs.docker.com/docker-for-windows/install/  ,由于篇幅的原因,這里就不贅述了,根據(jù)文檔所述安裝好之后,可以使用如下命令來測(cè)試 Docker 是否已經(jīng)安裝成功。


          docker --version

          創(chuàng)建含 Docker 的 Asp.Net Core 項(xiàng)目

          使用 Visual Studio 2019 創(chuàng)建  ASP.Net Core Web Application 模板的時(shí)候,記得勾選一下 Enable Docker Support ,在 OS 處選好 Windows 即可,如下圖所示:

          當(dāng)項(xiàng)目創(chuàng)建好之后,解決方案下會(huì)自動(dòng)生成一個(gè) Dockerfile 文件,如下圖所示:

          Dockerfile 大體如下:


          FROM microsoft/aspnet:4.7.2-windowsservercore-1803
          ARG source
          WORKDIR /inetpub/wwwroot
          COPY ${source:-obj/Docker/publish} .

          Dockerfile 的目的主要是用來描述如何構(gòu)建 docker images,你也可以根據(jù)自己的場(chǎng)景修改默認(rèn)的 dockerfile ,比如說修改 From 鏡像名將 host 從 windows 切換到 linux 上。

          部署 ASP.Net Core 到 Docker

          首先通過 Visual Studio 對(duì)項(xiàng)目進(jìn)行 build,然后用管理員模式開啟 cmd 窗口,在命令窗口上輸入如下命令。


          docker build -t dockersample .

          上面的命令將會(huì)把應(yīng)用程序構(gòu)建成名為 dockersample 的鏡像,下圖就展示了這個(gè) build 的過程。

          images 生成好之后,接下來就可以通過 images 實(shí)例化出一個(gè) application 容器,使用如下命令即可。


          docker run -d -p 8080:80 --name myapp dockersample

          上面的 myapp 表示你的容器名字, 后面的 dockersample 就是之前構(gòu)建好的鏡像名,如果一切正常,此時(shí)應(yīng)用程序就成功跑在 container 上了,你可以通過瀏覽器鍵入 http://localhost:8080/api/values 地址來調(diào)用 ValuesController.Get() 方法判斷是否一切正常。

          Docker 的一些常用命令

          要想列出所有的 images,可以使用如下命令。


          docker image ls

          要想列出所有的容器,使用如下命令。


          docker container ls –all

          要想停止容器,使用如下命令。


          docker stop containername

          要想刪除某一個(gè)容器,可以使用如下命令。


          docker rm containername

          值得注意的是,如果要?jiǎng)h除的容器正在運(yùn)行中,此時(shí)你是刪除不掉的,正確的做法是先停止容器,然后再刪除。

          容器給了應(yīng)用程序極小輕量的運(yùn)行環(huán)境,相比虛擬機(jī),容器更加輕量級(jí),而且容器一旦啟動(dòng),你的應(yīng)用程序幾乎同時(shí)啟動(dòng),Docker 是一種開源的容器化解決方案,現(xiàn)如今也是主流的容器化方式,關(guān)于更多的 Docker 討論會(huì)在后面的文章中一一展開。

          譯文鏈接:https://www.infoworld.com/article/3314897/how-to-dockerize-an-aspnet-core-application.html



          往期精彩回顧




          【推薦】.NET Core開發(fā)實(shí)戰(zhàn)視頻課程 ★★★

          .NET Core實(shí)戰(zhàn)項(xiàng)目之CMS 第一章 入門篇-開篇及總體規(guī)劃

          【.NET Core微服務(wù)實(shí)戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個(gè)接口多種實(shí)現(xiàn)的依賴注入與動(dòng)態(tài)選擇看這篇就夠了

          10個(gè)小技巧助您寫出高性能的ASP.NET Core代碼

          用abp vNext快速開發(fā)Quartz.NET定時(shí)任務(wù)管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實(shí)現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說法:實(shí)際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化

          關(guān)于C#異步編程你應(yīng)該了解的幾點(diǎn)建議

          C#異步編程看這篇就夠了


          瀏覽 35
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99欧美精品 | 国产操P| 黄色三级小说 | 免费的三级网站在线观看 | 日本A视频在线观看 |