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!

Tim Corey
9m 57s
容器是一個強大的工具,但對於許多開發者來說,將C#應用程式放進容器中的想法可能讓人感到不知所措。 手動設置Dockerfile和處理依賴可能會很複雜。 然而,正如Tim Corey在他的视频中解釋的那樣,.NET CLI簡化了這個過程,使開發者無需Dockerfile就能將他們的應用程式容器化。
在本文中,我們將深入探討使用Tim在他的影片中逐步講解的方法,將C#應用程式容器化。使用.NET CLI輕鬆容器化您的C#應用程式。遵循Tim的指導,我們將了解到如何輕鬆地將.NET應用程式發布到Docker容器中。
在影片的一開始,Tim解釋了容器化的必要性。 他強調,雖然容器是一個很好的工具,但設置Dockerfile並正確配置它的過程可能很複雜。
Tim引入了一種使用.NET CLI的簡單方法,而不是手動建立Dockerfile。 這種方法允許開發者在不手動編寫Dockerfile的情況下建立容器化的應用程式。
Tim還澄清,這個影片是他10分鐘訓練系列的一部分,該系列專注於對技術主題進行快速而有效的介紹。
Tim首先以一個簡單的Web API應用程式作為例子。 該應用程式包含一個名為/messages的單個端點,返回某些資料。
為了展示應用程式在容器化之前的行為,Tim在本地運行它。 通過存取/messages端點,他確認它在不使用容器的情況下能正常工作。
在進行容器化之前,他還檢查了:
這確保了在建立新容器時,我們可以清楚地看到變更。
為了容器化應用程式,Tim在專案目錄內移至命令行。 然後他運行以下命令:
Tim分解了命令的每個部分:
-o:Linux → 為基於Linux的容器發布應用程式。-a:x64 → 指定架構為64位。-p:PublishProfile=DefaultContainer → 使用預設容器設置。-c:Release → 為了更好的性能以釋放模式發布應用程式。Tim強調Linux容器比Windows容器更受偏愛,因為Windows容器主要用作.NET Framework應用程式的橋樑。
一旦執行發布命令,Tim解釋了.NET CLI將自動確定必要的配置並將所有內容打包到容器中。 他指出:
發佈後,他檢查Docker Desktop並確認已建立新容器映像background-demo。 初始容器大小為221 MB。
Tim向觀眾保證,稍後可以減少這個大小。
為了測試容器化應用程式,Tim直接從Docker Desktop啟動了容器。由於尚無運行中的容器,他點擊"Run"並設置了一個可選設置:
啟動後,他使用Web瀏覽器存取應用程式。 最初,存取根URL會顯示404錯誤,但導航到/messages可成功顯示預期資料。
Tim強調了一個重點:
他還注意到,由於應用程式發佈在釋放模式中,Swagger UI預設為禁用。
此時,預設容器大小為221 MB,Tim承認這相當大。 為了減少大小,他引入了一個較輕的基礎映像。
通過修改jammy-chiseled,這是一個更小的基於Ubuntu的映像:
builder.Services.Configure<ContainerOptions>(options => options.ContainerFamily = "jammy-chiseled");builder.Services.Configure(Of ContainerOptions)(Sub(options) options.ContainerFamily = "jammy-chiseled")然後,他重新運行發布命令,並在重建容器後,再次檢查映像大小。
新映像大小為113 MB——減少了約100 MB! 儘管大小較小,應用程式的功能相同。
Tim演示了刪除容器以清理工作區。 但是,Docker映像仍然可用,因此如果需要可以重新建立容器。
他強調,一旦構建了容器,它可以:
Tim總結了影片,強調了使用.NET CLI進行容器化的主要好處:
jammy-chiseled可減少容器大小。Tim使用.NET CLI進行C#應用程式容器化的方法簡單,快速且有效。透過遵循他的方法,開發者可以無需廣泛的Docker知識便能建立和優化容器。
通過利用Linux容器、優化的基礎映像和優化的發布命令,該技術使開發者能以最小的努力高效地將他們的應用程式容器化。
如果您想更深入地瞭解,請務必查看Tim Corey的影片。 它提供了整個過程的清晰、逐步的演練。
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy