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
Kontenery to potężne narzędzie, ale dla wielu programistów pomysł osadzenia aplikacji C# w kontenerze może wydawać się przytłaczający. Konfigurowanie pliku Dockerfile i ręczne zarządzanie zależnościami może być skomplikowane. Jednak, jak Tim Corey wyjaśnia w swoim wideo, .NET CLI upraszcza ten proces, umożliwiając programistom osadzanie aplikacji w kontenerach bez potrzeby posiadania pliku Dockerfile.
W tym artykułe przyjrzymy się bliżej procesowi umieszczania aplikacji C# w kontenerze za pomocą podejścia krok po kroku Tima z jego wideo, "Containerize Your C# Application Easily with the .NET CLI". Podążając za wskazówkami Tima, zrozumiemy, jak bez trudu opublikować aplikację .NET w kontenerze Docker.
Na początku wideo Tim wyjaśnia potrzebę konteneryzacji. Podkreśla, że choć kontenery to doskonałe narzędzie, proces konfigurowania pliku Dockerfile i jego poprawnej konfiguracji może być złożony.
Zamiast ręcznie tworzyć plik Dockerfile, Tim wprowadza łatwiejsze podejście wykorzystujące .NET CLI. Ta metoda pozwala programistom stworzyć aplikację w kontenerze bez ręcznego pisania pliku Dockerfile.
Tim wyjaśnia również, że to wideo jest częścią jego serii szkoleń trwających 10 minut, które skupiają się na szybkich i efektywnych wprowadzeniach do zagadnień technicznych.
Tim zaczyna od użycia minimalnej aplikacji Web API jako przykładu. Aplikacja zawiera jeden punkt końcowy o nazwie /messages, który zwraca pewne dane.
Aby zademonstrować zachowanie aplikacji przed konteneryzacją, Tim uruchamia ją lokalnie. Dostęp do punktu końcowego /messages potwierdza, że działa on poprawnie poza kontenerem.
Przed przystąpieniem do konteneryzacji sprawdza również, że:
Zapewnia to, że kiedy nowy kontener zostanie stworzony, można wyraźnie zobaczyć zmiany.
Aby umieścić aplikację w kontenerze, Tim przechodzi do linii poleceń wewnątrz katalogu projektu. Następnie uruchamia następujące polecenie:
Tim analizuje każdą część polecenia:
-o:Linux → Publikuje aplikację dla kontenera opartego na Linuxie.-a:x64 → Określa architekturę jako 64-bitową.-p:PublishProfile=DefaultContainer → Używa domyślnych ustawień kontenera.-c:Release → Publikuje aplikację w trybie release dla lepszej wydajności.Tim podkreśla, że kontenery Linuksa są preferowane nad kontenerami Windows, ponieważ kontenery Windows głównie służą jako pomost dla aplikacji w .NET Framework.
Po wykonaniu polecenia publikacji, Tim wyjaśnia, że .NET CLI automatycznie określi niezbędne konfiguracje i zapakuje wszystko w kontener. Wskazuje, że:
Po opublikowaniu sprawdza Docker Desktop i potwierdza, że nowy obraz kontenera, background-demo, został utworzony. Początkowy rozmiar kontenera to 221 MB.
Tim uspokaja widzów, że ten rozmiar można później zmniejszyć.
Aby przetestować aplikację w kontenerze, Tim uruchamia kontener bezpośrednio z Docker Desktop. Ponieważ jeszcze nie ma uruchomionych kontenerów, klika "Run" i ustawia opcjonalne ustawienie:
Po uruchomieniu uzyskuje dostęp do aplikacji za pomocą przeglądarki internetowej. Początkowo dostęp do głównego URL wywołuje błąd 404, ale nawigacja do /messages skutecznie wyświetla oczekiwane dane.
Tim podkreśla ważny punkt:
Zauważa również, że ponieważ aplikacja była opublikowana w trybie release, Swagger UI jest domyślnie wyłączony.
W tym momencie domyślny rozmiar kontenera to 221 MB, co Tim uznaje za dość duży. Aby zmniejszyć rozmiar, wprowadza lżejszy obraz bazowy.
Modyfikując plik Program.cs, ustawia rodzinę kontenerów na jammy-chiseled, mniejszy obraz oparty na Ubuntu:
builder.Services.Configure<ContainerOptions>(options => options.ContainerFamily = "jammy-chiseled");builder.Services.Configure(Of ContainerOptions)(Sub(options) options.ContainerFamily = "jammy-chiseled")Następnie ponownie uruchamia polecenie publikacji i po ponownym zbudowaniu kontenera sprawdza rozmiar obrazu.
Nowy rozmiar obrazu to 113 MB — redukcja o około 100 MB! Pomimo mniejszego rozmiaru, aplikacja działa identycznie.
Tim demonstruje usunięcie kontenera, aby oczyścić przestrzeń roboczą. Jednak obraz Docker pozostaje dostępny, więc kontener można odtworzyć w razie potrzeby.
Podkreśla, że gdy kontener jest zbudowany, można go:
Tim kończy wideo, wzmacniając kluczowe korzyści z użycia .NET CLI do konteneryzacji:
jammy-chiseled zmniejsza rozmiar kontenera.Podejście Tima do konteneryzacji aplikacji C# za pomocą .NET CLI jest proste, szybkie i skuteczne. Podążając za jego metodą, programiści mogą tworzyć i optymalizować kontenery bez potrzeby posiadania zaawansowanej wiedzy o Docker.
Wykorzystując kontenery Linuksa, zoptymalizowane obrazy bazowe i uproszczone polecenia publikacji, technika ta pozwala programistom efektywnie umieszczać swoje aplikacje w kontenerach przy minimalnym wysiłku.
Jeśli chcesz zgłębić temat, koniecznie zobacz wideo Tima Coreya. Zawiera jasny, krok po kroku przegląd całego procesu.
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