Kontainer vs. komputer virtual

Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016

Topik ini membahas beberapa kesamaan dan perbedaan utama antara kontainer dan komputer virtual (VM), dan kapan Anda mungkin ingin menggunakan masing-masing. Kontainer dan VM masing-masing memiliki kegunaannya-pada kenyataannya, banyak penyebaran kontainer menggunakan VM sebagai sistem operasi host daripada berjalan langsung pada perangkat keras, terutama saat menjalankan kontainer di cloud.

Untuk gambaran umum kontainer, lihat Windows dan kontainer.

Arsitektur kontainer

Kontainer adalah silo yang terisolasi dan ringan untuk menjalankan aplikasi pada sistem operasi host. Kontainer dibangun di atas kernel sistem operasi host (yang dapat dianggap sebagai pipa terkubur dari sistem operasi), dan hanya berisi aplikasi dan beberapa API dan layanan sistem operasi ringan yang berjalan dalam mode pengguna, seperti yang ditunjukkan dalam diagram ini.

Diagram arsitektur memperlihatkan bagaimana kontainer berjalan di atas kernel

Arsitektur komputer virtual

Berbeda dengan kontainer, VM menjalankan sistem operasi lengkap–termasuk kernelnya sendiri–seperti yang ditunjukkan dalam diagram ini.

Diagram arsitektur yang menunjukkan bagaimana VM menjalankan sistem operasi lengkap di samping sistem operasi host

Kontainer vs. komputer virtual

Tabel berikut menunjukkan beberapa kesamaan dan perbedaan teknologi pelengkap ini.

Fitur Komputer virtual Kontainer
Isolasi Menyediakan isolasi lengkap dari sistem operasi host dan VM lainnya. Ini berguna ketika batas keamanan yang kuat sangat penting, seperti hosting aplikasi dari perusahaan yang bersaing di server atau kluster yang sama. Biasanya menyediakan isolasi ringan dari host dan kontainer lainnya, tetapi tidak memberikan batas keamanan sekuat mesin virtual. (Anda dapat meningkatkan keamanan dengan menggunakan mode isolasi Hyper-V untuk mengisolasi setiap kontainer dalam VM yang ringan).
Sistem operasi Menjalankan sistem operasi yang lengkap termasuk kernel, sehingga membutuhkan lebih banyak sumber daya sistem (CPU, memori, dan penyimpanan). Menjalankan bagian mode pengguna dari sistem operasi dan dapat disesuaikan untuk hanya berisi layanan yang diperlukan untuk aplikasi Anda, sehingga menggunakan sumber daya sistem lebih sedikit.
Kompatibilitas tamu Menjalankan hampir semua sistem operasi di dalam komputer virtual Berjalan pada versi sistem operasi yang sama dengan host (isolasi Hyper-V memungkinkan Anda menjalankan versi OS yang sama sebelumnya di lingkungan VM yang ringan)
Penyebaran Menerapkan VM individual dengan menggunakan Pusat Admin Windows atau Hyper-V Manager; menyebarkan beberapa VM dengan menggunakan PowerShell atau Manajer Komputer Virtual Pusat Sistem. Menyebarkan masing-masing kontainer dengan menggunakan Docker melalui baris perintah; menyebarkan beberapa kontainer dengan menggunakan orkestrator seperti Azure Kubernetes Service.
Pembaruan dan peningkatan sistem operasi Unduh dan instal pembaruan sistem operasi pada setiap VM. Menginstal versi sistem operasi baru memerlukan peningkatan atau sering kali hanya membuat VM yang sama sekali baru. Ini bisa memakan waktu, terutama jika Anda memiliki banyak VM... Memperbarui atau memutakhirkan file sistem operasi dalam kontainer sama:
  1. Edit file build gambar kontainer Anda (dikenal sebagai Dockerfile) untuk menunjuk ke versi terbaru gambar dasar Windows.
  2. Bangun kembali gambar kontainer Anda dengan gambar dasar baru ini.
  3. Dorong gambar kontainer ke registri kontainer Anda.
  4. Menyebarkan ulang menggunakan orkestrator.
    Orkestrator menyediakan otomatisasi yang kuat untuk melakukan ini dalam skala besar. Untuk detailnya, lihat Tutorial: Memperbarui aplikasi di Azure Kubernetes Service.
Penyimpanan persisten Gunakan hard disk virtual (VHD) untuk penyimpanan lokal untuk satu VM, atau berbagi file SMB untuk penyimpanan yang dibagikan oleh beberapa server Gunakan Azure Disks untuk penyimpanan lokal untuk satu simpul atau Azure Files (berbagi SMB) untuk penyimpanan yang dibagikan oleh beberapa simpul atau server.
Penyeimbangan Beban Penyeimbangan beban komputer virtual memindahkan VM yang berjalan ke server lain dalam kluster failover. Kontainer itu sendiri tidak bergerak; sebaliknya, orkestrator dapat secara otomatis memulai atau menghentikan kontainer pada node kluster untuk mengelola perubahan beban dan ketersediaan.
Toleransi kegagalan VM dapat gagal ke server lain dalam kluster dengan sistem operasi VM dihidupkan ulang di server baru. Jika simpul kluster gagal, kontainer apa pun yang berjalan di dalamnya akan dibuat ulang dengan cepat oleh orkestrator pada simpul kluster lain.
Jaringan Menggunakan adapter jaringan virtual. Menggunakan tampilan terisolasi dari adaptor jaringan virtual, menyediakan sedikit lebih sedikit virtualisasi–firewall host dibagi dengan kontainer–dengan menggunakan lebih sedikit sumber daya. Untuk informasi selengkapnya, lihat Jaringan kontainer Windows.