IRONSOFTWAREHOME

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

Containerize Your C# Application Easily with the .NET CLI

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");

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

新映像大小為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的影片。 它提供了整個過程的清晰、逐步的演練。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立