Udostępnij za pośrednictwem


Kontenery a maszyny wirtualne

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

W tym temacie omówiono niektóre kluczowe podobieństwa i różnice między kontenerami i maszynami wirtualnymi oraz kiedy warto ich używać. 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 bezpośrednio na sprzęcie, zwłaszcza w przypadku uruchamiania kontenerów w chmurze.

Aby zapoznać się z przeglądem kontenerów, zobacz Windows i kontenery.

Architektura kontenera

Kontener to izolowany, lekki silos do uruchamiania aplikacji w systemie operacyjnym hosta. Kontenery są oparte na jądrze systemu operacyjnego hosta (które można traktować jako ukrytą infrastrukturę systemu operacyjnego) i zawierają tylko aplikacje oraz niektóre lekkie interfejsy API i serwisy systemowe, które działają w trybie użytkownika, jak pokazano na tym diagramie.

Diagram architektury przedstawiający, jak kontenery działają na jądrze

Architektura maszyny wirtualnej

W przeciwieństwie do kontenerów maszyny wirtualne uruchamiają kompletny system operacyjny, w tym własne jądro, jak pokazano na tym diagramie.

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

Kontenery a maszyny wirtualne

W poniższej tabeli przedstawiono niektóre podobieństwa i różnice tych uzupełniających technologii.

Cecha Maszyna wirtualna Kontener
Izolacja Zapewnia pełną izolację od systemu operacyjnego hosta i innych maszyn wirtualnych. Jest to przydatne, gdy silna granica zabezpieczeń ma kluczowe znaczenie, takie jak hostowanie aplikacji od konkurencyjnych firm na tym samym serwerze lub klastrze. Zazwyczaj zapewnia uproszczoną izolację od hosta i innych kontenerów, ale nie zapewnia tak silnej granicy zabezpieczeń jak maszyna wirtualna. (Zabezpieczenia można zwiększyć przy użyciu trybu izolacji Hyper-V w celu odizolowania każdego kontenera w lekkiej maszynie wirtualnej).
System operacyjny Uruchamia kompletny system operacyjny, w tym jądro, co wymaga większej ilości zasobów systemowych (procesora CPU, pamięci i magazynu). Uruchamia część systemu operacyjnego w trybie użytkownika i można dostosować go do potrzeb tylko potrzebnych usług dla aplikacji przy użyciu mniejszej liczby zasobów systemowych.
Zgodność gościa Uruchamia niemal dowolny system operacyjny wewnątrz maszyny wirtualnej. Działa w tej samej wersji systemu operacyjnego co hosta (Hyper-V izolacja umożliwia uruchamianie wcześniejszych wersji tego samego systemu operacyjnego w uproszczonym środowisku maszyny wirtualnej).
Wdrażania Wdrażanie poszczególnych maszyn wirtualnych przy użyciu centrum administracyjnego systemu Windows lub programu Hyper-V Manager; wdrażanie wielu maszyn wirtualnych przy użyciu programu PowerShell lub programu System Center Virtual Machine Manager. Wdrażanie poszczególnych kontenerów przy użyciu platformy Docker za pomocą wiersza polecenia; wdrażanie wielu kontenerów przy użyciu orkiestratora, takiego jak usługa Azure Kubernetes Service.
Aktualizacje i uaktualnienia systemu operacyjnego Pobierz i zainstaluj aktualizacje systemu operacyjnego na każdej maszynie wirtualnej. Zainstalowanie nowej wersji systemu operacyjnego wymaga uaktualnienia lub często tylko utworzenia zupełnie nowej maszyny wirtualnej. Może to być czasochłonne, zwłaszcza jeśli masz wiele maszyn wirtualnych. Aktualizowanie lub uaktualnianie plików systemu operacyjnego w kontenerze jest takie samo:
  1. Edytuj plik kompilacji obrazu kontenera (znany jako plik Dockerfile), aby wskazać najnowszą wersję obrazu podstawowego systemu Windows.
  2. Ponownie skompiluj obraz kontenera przy użyciu tego nowego obrazu podstawowego.
  3. Wypchnij obraz kontenera do rejestru kontenerów.
  4. Ponowne wdrażanie przy użyciu orkiestratora.
    Orkiestrator zapewnia zaawansowaną automatyzację w celu wykonywania tych czynności na dużą skalę. Aby uzyskać szczegółowe informacje, zobacz samouczek : aktualizowanie aplikacji w usłudze Azure Kubernetes Service.
Pamięć trwała Użyj wirtualnego dysku twardego (VHD) w ramach przechowywania lokalnego dla pojedynczej maszyny wirtualnej lub udziału plików SMB w ramach przechowywania współużytkowanego przez wiele serwerów. Użyj dysków platformy Azure na potrzeby magazynu lokalnego dla jednego węzła lub usługi Azure Files (udziałów SMB) dla magazynu współużytkowanego przez wiele węzłów lub serwerów.
Równoważenie obciążenia Równoważenie obciążenia maszyn wirtualnych przemieszcza uruchomione maszyny wirtualne na inne serwery w klastrze awaryjnego przełączania. Same kontenery nie są przenoszone; Zamiast tego koordynator może automatycznie uruchamiać lub zatrzymywać kontenery w węzłach klastra, aby zarządzać zmianami obciążenia i dostępności.
Odporność na uszkodzenia Maszyny wirtualne mogą przejść w tryb failover na inny serwer w klastrze, a system operacyjny maszyny wirtualnej zostanie uruchomiony ponownie na nowym serwerze. Jeśli węzeł klastra ulegnie awarii, wszystkie kontenery uruchomione na nim zostaną szybko odtworzone przez koordynatora w innym węźle klastra.
Sieci Używa wirtualnych kart sieciowych. Korzysta z izolowanego widoku wirtualnej karty sieciowej, zapewniając nieco mniej wirtualizacji — zapora hosta jest udostępniana kontenerom — przy jednoczesnym użyciu mniejszej ilości zasobów. Aby uzyskać więcej informacji, zobacz networking kontenerów systemu Windows.