跳至頁尾內容
Iron Academy Logo
學習C#
學習C#

其他類別

使用.NET CLI輕松容器化C#應用程式

Tim Corey
9m 57s

容器是一個強大的工具,但對於許多開發者來說,將C#應用程式放進容器中的想法可能讓人感到不知所措。 手動設置Dockerfile和處理依賴可能會很複雜。 然而,正如Tim Corey在他的视频中解釋的那樣,.NET CLI簡化了這個過程,使開發者無需Dockerfile就能將他們的應用程式容器化。

在本文中,我們將深入探討使用Tim在他的影片中逐步講解的方法,將C#應用程式容器化。使用.NET CLI輕鬆容器化您的C#應用程式。遵循Tim的指導,我們將了解到如何輕鬆地將.NET應用程式發布到Docker容器中。

容器的.NET CLI介紹

在影片的一開始,Tim解釋了容器化的必要性。 他強調,雖然容器是一個很好的工具,但設置Dockerfile並正確配置它的過程可能很複雜。

Tim引入了一種使用.NET CLI的簡單方法,而不是手動建立Dockerfile。 這種方法允許開發者在不手動編寫Dockerfile的情況下建立容器化的應用程式。

Tim還澄清,這個影片是他10分鐘訓練系列的一部分,該系列專注於對技術主題進行快速而有效的介紹。

應用程式設置

Tim首先以一個簡單的Web API應用程式作為例子。 該應用程式包含一個名為/messages的單個端點,返回某些資料。

為了展示應用程式在容器化之前的行為,Tim在本地運行它。 通過存取/messages端點,他確認它在不使用容器的情況下能正常工作。

在進行容器化之前,他還檢查了:

  • Docker已安裝並在他的機器上運行。
  • 開始時沒有現有的Docker映像或容器。

這確保了在建立新容器時,我們可以清楚地看到變更。

準備容器化

為了容器化應用程式,Tim在專案目錄內移至命令行。 然後他運行以下命令:

dotnet publish -o:Linux -a:x64 -p:PublishProfile=DefaultContainer -c:Release

Tim分解了命令的每個部分:

  • -o:Linux → 為基於Linux的容器發布應用程式。
  • -a:x64 → 指定架構為64位。
  • -p:PublishProfile=DefaultContainer → 使用預設容器設置。
  • -c:Release → 為了更好的性能以釋放模式發布應用程式。

Tim強調Linux容器比Windows容器更受偏愛,因為Windows容器主要用作.NET Framework應用程式的橋樑。

發布和建立容器

一旦執行發布命令,Tim解釋了.NET CLI將自動確定必要的配置並將所有內容打包到容器中。 他指出:

  • 這種方法不需要Dockerfile。
  • 該過程一個步驟就能構建應用程式並將其容器化。
  • 使用的基礎映像是微軟的.NET 8運行時容器。

發佈後,他檢查Docker Desktop並確認已建立新容器映像background-demo。 初始容器大小為221 MB。

Tim向觀眾保證,稍後可以減少這個大小。

運行容器

為了測試容器化應用程式,Tim直接從Docker Desktop啟動了容器。由於尚無運行中的容器,他點擊"Run"並設置了一個可選設置:

  • 他將容器的內部端口(隨機分配)映射到主機上的8080端口。

啟動後,他使用Web瀏覽器存取應用程式。 最初,存取根URL會顯示404錯誤,但導航到/messages可成功顯示預期資料。

Tim強調了一個重點:

  • 應用程式在容器中以UTC時間運行,這可能與本地主機的時區不同。

他還注意到,由於應用程式發佈在釋放模式中,Swagger UI預設為禁用。

優化容器大小

此時,預設容器大小為221 MB,Tim承認這相當大。 為了減少大小,他引入了一個較輕的基礎映像。

通過修改jammy-chiseled,這是一個更小的基於Ubuntu的映像:

builder.Services.Configure<ContainerOptions>(options => options.ContainerFamily = "jammy-chiseled");
builder.Services.Configure<ContainerOptions>(options => options.ContainerFamily = "jammy-chiseled");

然後,他重新運行發布命令,並在重建容器後,再次檢查映像大小。

新映像大小為113 MB——減少了約100 MB! 儘管大小較小,應用程式的功能相同。

刪除和重新建立容器

Tim演示了刪除容器以清理工作區。 但是,Docker映像仍然可用,因此如果需要可以重新建立容器。

他強調,一旦構建了容器,它可以:

  • 本地運行以進行開發和測試。
  • 推送到諸如Docker Hub或Azure Container Registry之類的容器註冊表中。
  • 用作雲部署Web應用程式的基礎。

結論和最後的想法

Tim總結了影片,強調了使用.NET CLI進行容器化的主要好處:

  1. 無需Dockerfile - .NET CLI自動處理所有事情。
  2. 快速簡便的過程 - 只需一個命令即可容器化應用程式。
  3. 更小且優化的映像 - 使用jammy-chiseled可減少容器大小。
  4. 無縫部署 - 容器可以推送到多種雲服務。

最後的想法

Tim使用.NET CLI進行C#應用程式容器化的方法簡單,快速且有效。透過遵循他的方法,開發者可以無需廣泛的Docker知識便能建立和優化容器。

通過利用Linux容器、優化的基礎映像和優化的發布命令,該技術使開發者能以最小的努力高效地將他們的應用程式容器化。

如果您想更深入地瞭解,請務必查看Tim Corey的影片。 它提供了整個過程的清晰、逐步的演練。

Hero Worlddot related to 使用.NET CLI輕松容器化C#應用程式
Hero Affiliate related to 使用.NET CLI輕松容器化C#應用程式

分享您所愛以賺取更多報酬

您是否為使用 .NET、C#、Java、Python 或 Node.js 的開發者建立內容?將您的專業知識轉化為額外收入!

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話