Udostępnij za pośrednictwem


Windows i kontenery

Dotyczy: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016

Kontenery to technologia do tworzenia pakietów i uruchamiania aplikacji systemu Windows i Linux w różnych środowiskach lokalnych i w chmurze. Kontenery zapewniają lekkie, izolowane środowisko, które ułatwia tworzenie, wdrażanie i zarządzanie aplikacjami. Kontenery są uruchamiane i zatrzymywane szybko, co czyni je idealnym rozwiązaniem dla aplikacji, które muszą szybko dostosować się do zmieniającego się zapotrzebowania. Lekki charakter kontenerów sprawia również, że są one przydatnym narzędziem do zwiększania gęstości i wykorzystania infrastruktury.

Grafika przedstawiająca, jak kontenery mogą działać w chmurze lub lokalnie, obsługując aplikacje monolityczne lub mikrousługi napisane w prawie każdym języku.

Ekosystem kontenerów firmy Microsoft

Firma Microsoft udostępnia szereg narzędzi i platform, które ułatwiają tworzenie i wdrażanie aplikacji w kontenerach:

  • uruchamianie kontenerów opartych na systemie Windows lub Linux w systemie Windows 10 na potrzeby programowania i testowania przy użyciu Docker Desktop, co korzysta z funkcji kontenerów wbudowanych w system Windows. Można również uruchamiać kontenery natywnie w systemie Windows Server.

  • tworzenie, testowanie, publikowanie i wdrażanie kontenerów opartych na systemie Windows przy użyciu zaawansowanej obsługi kontenerów w programie Visual Studio i Visual Studio Code, które obejmują obsługę platformy Docker, narzędzia Docker Compose, Kubernetes, Helm i innych przydatnych technologii.

  • Publikowanie aplikacji jako obrazów kontenerów publicznej usłudze DockerHub dla innych użytkowników lub prywatnej usługi Azure Container Registry na potrzeby własnego programowania i wdrażania organizacji, wypychania i ściągania bezpośrednio z poziomu programów Visual Studio i Visual Studio Code.

  • Wdrażanie kontenerów na dużą skalę w usłudze Azure lub w innych chmurach:

    • Pobierz aplikację (obraz kontenera) z rejestru kontenerów, takiego jak Azure Container Registry, a następnie wdróż ją oraz zarządzaj nią na dużą skalę z wykorzystaniem orkiestratora, takiego jak Azure Kubernetes Service (AKS).
    • Usługa Azure Kubernetes Service wdraża kontenery na maszynach wirtualnych platformy Azure i zarządza nimi na dużą skalę, niezależnie od tego, czy jest to dziesiątki kontenerów, setek, czy nawet tysięcy. Maszyny wirtualne platformy Azure uruchamiają dostosowany obraz systemu Windows Server (jeśli wdrażasz aplikację opartą na systemie Windows) lub dostosowany obraz systemu Ubuntu Linux (jeśli wdrażasz aplikację opartą na systemie Linux).
  • Wdrażanie kontenerów na miejscu przy użyciu usługi AKS w usłudze Azure Stack HCI, Azure Stack z AKS Enginelub Azure Stack z OpenShift. Możesz również skonfigurować rozwiązanie Kubernetes samodzielnie w systemie Windows Server (zobacz Kubernetes w systemie Windows), a my pracujemy nad obsługą uruchamiania kontenerów systemu Windows w systemie RedHat OpenShift Container Platform.

Jak działają kontenery

Kontener to izolowany, lekki pakiet do uruchamiania aplikacji w systemie operacyjnym hosta. Kontenery opierają się na jądrze systemu operacyjnego hosta (które można traktować jako ukrytą infrastrukturę systemu operacyjnego), jak pokazano na poniższym diagramie.

architektoniczny diagram przedstawiający, jak kontenery działają na jądrze

Chociaż kontener współdzieli jądro systemu operacyjnego hosta, nie uzyskuje do niego nieograniczonego dostępu. Zamiast tego kontener pobiera izolowany i w niektórych przypadkach zwirtualizowany widok systemu. Na przykład kontener może uzyskać dostęp do zwirtualizowanej wersji systemu plików i rejestru, ale wszelkie zmiany wpływają tylko na kontener i są odrzucane po zatrzymaniu. Aby zapisać dane, kontener może zainstalować magazyn trwały, taki jak Azure Disk lub udział plików, taki jak Azure Files.

Kontener jest oparty na jądrze, ale jądro nie zapewnia wszystkich interfejsów API i usług, których aplikacja musi uruchomić — większość z nich jest dostarczana przez pliki systemowe (biblioteki), które działają powyżej jądra w trybie użytkownika. Ponieważ kontener jest odizolowany od środowiska trybu użytkownika hosta, kontener potrzebuje własnej kopii tych plików systemowych trybu użytkownika, które są pakowane w coś znanego jako obraz podstawowy. Obraz podstawowy służy jako podstawowa warstwa, na której jest tworzony kontener, zapewniając mu usługi systemu operacyjnego, które nie są udostępniane przez jądro. Ale później omówimy więcej o obrazach kontenerów.

Kontenery a maszyny wirtualne

W przeciwieństwie do kontenera maszyna wirtualna uruchamia kompletny system operacyjny, w tym własne jądro, jak pokazano na tym diagramie.

diagram architektury przedstawiający, jak maszyny wirtualne uruchamiają pełny system operacyjny obok systemu operacyjnego hosta

Kontenery i maszyny wirtualne mają swoje zastosowania— w rzeczywistości wiele wdrożeń kontenerów używa maszyn wirtualnych jako systemu operacyjnego hosta, a nie uruchamiania bezpośrednio na sprzęcie, zwłaszcza w przypadku uruchamiania kontenerów w chmurze.

Aby uzyskać więcej informacji na temat podobieństw i różnic w tych uzupełniających technologiach, zobacz Kontenery vs. maszyny wirtualne.

Obrazy kontenerów

Wszystkie kontenery są tworzone na podstawie obrazów kontenerów. Obraz kontenera to pakiet plików zorganizowanych w stos warstw, który znajduje się na komputerze lokalnym lub w zdalnym rejestrze kontenerów. Obraz kontenera składa się z plików systemu operacyjnego w trybie użytkownika potrzebnych do obsługi Twojej aplikacji, wszystkich środowisk uruchomieniowych lub zależności aplikacji oraz innych różnych plików konfiguracyjnych, które aplikacja musi mieć, aby działać prawidłowo.

Firma Microsoft oferuje kilka obrazów (nazywanych obrazami podstawowymi), których można użyć jako punktu początkowego do utworzenia własnego obrazu kontenera:

  • Windows — zawiera pełny zestaw interfejsów API systemu Windows i usług systemowych (minus role serwera).
  • Windows Server — zawiera pełny zestaw interfejsów API systemu Windows i usług systemowych.
  • Windows Server Core — mniejszy obraz, który zawiera podzbiór interfejsów API systemu Windows Server — czyli pełną platformę .NET. Obejmuje również większość, ale nie wszystkie role serwera (na przykład serwer faksów nie jest dołączony).
  • Nano Server — to najmniejszy obraz systemu Windows Server, który obejmuje obsługę interfejsów API platformy .NET Core oraz niektórych ról serwera.

Obrazy kontenerów składają się z serii warstw. Każda warstwa zawiera zestaw plików, które po połączeniu ze sobą reprezentują obraz kontenera. Ze względu na warstwowy charakter kontenerów, nie trzeba zawsze odwoływać się do obrazu bazowego, aby utworzyć kontener systemu Windows. Zamiast tego możesz wybrać inny obraz, który już zawiera odpowiednią strukturę. Na przykład zespół .NET publikuje obraz platformy .NET Core, który zawiera środowisko uruchomieniowe platformy .NET Core. Dzięki temu użytkownicy nie muszą duplikować procesu instalowania platformy .NET Core — zamiast tego mogą ponownie używać warstw tego obrazu kontenera. Sam obraz platformy .NET Core jest oparty na serwerze Nano Server.

Aby uzyskać więcej informacji, zobacz Container Base Images.

Użytkownicy kontenerów

Kontenery dla deweloperów

Kontenery pomagają deweloperom tworzyć i dostarczać aplikacje o wyższej jakości, szybciej. Dzięki kontenerom deweloperzy mogą utworzyć obraz kontenera, który jest wdrażany w sekundach, identycznie w różnych środowiskach. Kontenery działają jako łatwy mechanizm udostępniania kodu między zespołami i uruchamiania środowiska deweloperskiego bez wpływu na system plików hosta.

Kontenery są przenośne i uniwersalne, mogą uruchamiać aplikacje napisane w dowolnym języku i są zgodne z dowolnym komputerem z systemem Windows 10 w wersji 1607 lub nowszej lub Windows Server 2016 lub nowszej. Deweloperzy mogą tworzyć i testować kontener lokalnie na laptopie lub komputerze stacjonarnym, a następnie wdrażać ten sam obraz kontenera w chmurze prywatnej firmy, chmurze publicznej lub dostawcy usług. Naturalna zwinność kontenerów wspiera nowoczesne wzorce projektowania aplikacji w zwirtualizowanych środowiskach chmurowych na dużą skalę. Najbardziej przydatną korzyścią dla deweloperów jest być może możliwość odizolowania środowiska tak, aby aplikacja zawsze pobierała wersję bibliotek, które określisz, unikając konfliktów z zależnościami.

Kontenery dla specjalistów IT

Kontenery ułatwiają administratorom tworzenie infrastruktury, która jest łatwiejsza do aktualizowania i konserwacji, a także w pełni wykorzystuje zasoby sprzętowe. Specjaliści IT mogą używać kontenerów, aby zapewnić ustandaryzowane środowiska dla swoich zespołów programistycznych, qa i produkcyjnych. Korzystając z kontenerów, administratorzy systemów abstrahują różnice w instalacjach systemów operacyjnych oraz od podstawowej infrastruktury.

Można również użyć trybu interaktywnego kontenerów do uruchamiania konfliktujących instancji narzędzia wiersza poleceń na tym samym systemie.

Orkiestracja kontenerów

Orkiestratory są krytycznym elementem infrastruktury podczas konfigurowania środowiska opartego na kontenerach. Chociaż można zarządzać kilkoma kontenerami ręcznie przy użyciu platformy Docker i systemu Windows, aplikacje często korzystają z pięciu, dziesięciu lub nawet setek kontenerów, co jest miejscem, w którym wchodzą orkiestratory.

Orkiestratory kontenerów zostały utworzone w celu ułatwienia zarządzania kontenerami na dużą skalę i w środowisku produkcyjnym. Orkiestratory udostępniają następujące funkcje:

Orkiestratory ułatwiają rozwijanie konteneryzowanych aplikacji na dużą skalę, zapewniając funkcjonalność:

  • Wdrażanie na dużą skalę
  • Planowanie obciążeń
  • Monitorowanie kondycji
  • Przełączanie w tryb failover w przypadku awarii węzła
  • Skalowanie w górę lub w dół
  • Nawiązywanie kontaktów
  • Odnajdywanie usług
  • Koordynowanie uaktualnień aplikacji
  • Koligacja węzła klastra

Istnieje wiele różnych koordynatorów, których można używać z kontenerami systemu Windows; Poniżej przedstawiono opcje dostępne przez firmę Microsoft:

Testowanie kontenerów w systemie Windows

Aby rozpocząć pracę z kontenerami w systemie Windows Server lub Windows 10, zobacz następujące elementy:

Aby uzyskać pomoc przy podejmowaniu decyzji o tym, które usługi platformy Azure są odpowiednie dla danego scenariusza, zobacz azure container services i Wybieranie usług platformy Azure do hostowania aplikacji.

Zasoby

Aby wyświetlić zasoby do korzystania z kontenerów systemu Windows Server: