Windows dan kontainer

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

Kontainer adalah teknologi untuk mengemas dan menjalankan aplikasi Windows dan Linux di berbagai lingkungan lokal dan di cloud. Kontainer menyediakan lingkungan yang ringan dan terisolasi yang membuat aplikasi lebih mudah dikembangkan, disebarkan, dan dikelola. Kontainer dimulai dan berhenti dengan cepat, membuatnya ideal untuk aplikasi yang perlu beradaptasi dengan cepat terhadap perubahan permintaan. Sifat kontainer yang ringan juga menjadikannya alat yang berguna untuk meningkatkan kepadatan dan pemanfaatan infrastruktur Anda.

Graphic showing how containers can run in the cloud or on-premises, supporting monolithic apps or microservices written in nearly any language.

Untuk melihat peta jalan fitur yang direncanakan dan saat ini tersedia, lihat peta jalan kontainer Windows Server. Selain itu, lihat Peristiwa untuk melihat presentasi video terbaru dan posting blog untuk Kontainer Windows.

Ekosistem kontainer Microsoft

Microsoft menyediakan sejumlah alat dan platform untuk membantu Anda mengembangkan dan menyebarkan aplikasi dalam kontainer:

  • Jalankan kontainer berbasis Windows atau berbasis Linux di Windows 10 untuk pengembangan dan pengujian menggunakan Docker Desktop, yang menggunakan fungsionalitas kontainer bawaan windows. Anda juga dapat menjalankan kontainer secara asli di Windows Server.

  • Mengembangkan, menguji, menerbitkan, dan menyebarkan kontainer berbasis Windows menggunakan dukungan kontainer yang kuat di Visual Studio dan Visual Studio Code, yang mencakup dukungan untuk Docker, Docker Compose, Kubernetes, Helm, dan teknologi berguna lainnya.

  • Terbitkan aplikasi Anda sebagai gambar kontainer ke DockerHub publik untuk digunakan orang lain, atau ke Azure Container Registry privat untuk pengembangan dan penyebaran organisasi Anda sendiri, mendorong dan menarik langsung dari dalam Visual Studio dan Visual Studio Code.

  • Sebarkan kontainer dalam skala besar di Azure atau cloud lainnya:

    • Tarik aplikasi Anda (gambar kontainer) dari registri kontainer, seperti Azure Container Registry, lalu sebarkan dan kelola dalam skala besar menggunakan orkestrator seperti Azure Kubernetes Service (AKS).
    • Azure Kubernetes Service menyebarkan kontainer ke komputer virtual Azure dan mengelolanya dalam skala besar, baik itu puluhan kontainer, ratusan, atau bahkan ribuan. Komputer virtual Azure menjalankan gambar Windows Server yang disesuaikan (jika Anda menyebarkan aplikasi berbasis Windows), atau gambar Linux Ubuntu yang disesuaikan (jika Anda menyebarkan aplikasi berbasis Linux).
  • Sebarkan kontainer lokal dengan menggunakan AKS di Azure Stack HCI, Azure Stack dengan Mesin AKS, atau Azure Stack dengan OpenShift. Anda juga dapat menyiapkan Kubernetes sendiri di Windows Server (lihat Kubernetes di Windows), dan kami juga sedang berupaya menjalankan kontainer Windows di Platform Kontainer RedHat OpenShift.

Bagaimana kontainer bekerja?

Kontainer adalah paket 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), seperti yang ditunjukkan pada diagram di bawah ini.

Architectural diagram showing how containers run on top of the kernel

Meskipun kontainer berbagi kernel sistem operasi host, tetapi kontainer tersebut tidak mendapatkan akses tak terbatas. Sebaliknya, kontainer mendapat tampilan sistem yang terisolasi–dan dalam beberapa kasus, tervirtualisasi. Misalnya, sebuah kontainer dapat mengakses versi virtual dari sistem file dan registri, tetapi setiap perubahan mempengaruhi hanya kontainer tersebut dan akan dibuang ketika berhenti. Untuk menyimpan data, kontainer dapat memasang penyimpanan persisten seperti Azure Disk atau berbagi file (termasuk Azure Files).

Sebuah kontainer membangun di atas kernel, tetapi kernel tidak menyediakan semua API dan layanan yang diperlukan untuk menjalankan aplikasi–sebagian besar disediakan oleh file sistem (pustaka) yang berjalan di atas kernel dalam mode pengguna. Karena kontainer diisolasi dari lingkungan mode pengguna host, kontainer ini membutuhkan salinannya sendiri dari file sistem mode pengguna yang dikemas menjadi sesuatu yang dikenal sebagai gambar dasar. Gambar dasar berfungsi sebagai lapisan dasar di mana wadah Anda dibangun, menyediakannya dengan layanan sistem operasi yang tidak disediakan oleh kernel. Tetapi kita akan berbicara lebih banyak tentang gambar kontainer nanti.

Kontainer vs. komputer virtual

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

Architectural diagram showing how VMs run a complete operating system beside the host operating system

Kontainer dan komputer virtual masing-masing memiliki kegunaannya-pada kenyataannya, banyak penyebaran kontainer menggunakan komputer virtual sebagai sistem operasi host daripada berjalan langsung pada perangkat keras, terutama saat menjalankan kontainer di cloud.

Untuk detail selengkapnya tentang kesamaan dan perbedaan teknologi pelengkap ini, lihat Kontainer vs. komputer virtual.

Gambar kontainer

Semua kontainer dibuat dari gambar kontainer. Gambar kontainer adalah bundel file yang diatur ke dalam tumpukan lapisan yang berada di komputer lokal Anda atau di registri kontainer jarak jauh. Gambar kontainer terdiri dari file sistem operasi mode pengguna yang diperlukan untuk mendukung aplikasi Anda, runtime atau dependensi aplikasi Anda, dan file konfigurasi lain-lain yang perlu dijalankan aplikasi Anda dengan benar.

Microsoft menawarkan beberapa gambar (disebut gambar dasar) yang dapat Anda gunakan sebagai titik awal untuk membangun gambar kontainer Anda sendiri:

  • Windows - berisi set lengkap API Windows dan layanan sistem (peran server minus).
  • Windows Server - berisi set lengkap API Windows dan layanan sistem.
  • Windows Server Core - gambar yang lebih kecil yang berisi subset API Windows Server–yaitu kerangka kerja .NET lengkap. Ini juga mencakup sebagian besar tetapi tidak semua peran server (misalnya Server Faks tidak disertakan).
  • Nano Server - gambar Windows Server terkecil dan menyertakan dukungan untuk API .NET Core dan beberapa peran server.

Seperti disebutkan sebelumnya, gambar kontainer terdiri dari serangkaian lapisan. Setiap lapisan berisi sekumpulan file yang, ketika dilapisi bersama-sama, mewakili gambar kontainer Anda. Karena sifat kontainer berlapis, Anda tidak harus selalu menargetkan gambar dasar untuk membangun kontainer Windows. Sebagai gantinya, Anda dapat menargetkan gambar lain yang sudah membawa kerangka kerja yang Anda inginkan. Misalnya, tim .NET menerbitkan gambar inti .NET yang membawa runtime inti .NET. Ini menghemat pengguna dari kebutuhan untuk menduplikasi proses penginstalan .NET core–alih-alih mereka dapat menggunakan kembali lapisan gambar kontainer ini. Gambar inti .NET itu sendiri dibangun berdasarkan Nano Server.

Untuk detail selengkapnya, lihat Gambar Dasar Kontainer.

Pengguna kontainer

Kontainer untuk pengembang

Kontainer membantu pengembang membangun dan mengirimkan aplikasi berkualitas lebih tinggi, lebih cepat. Dengan kontainer, pengembang dapat membuat gambar kontainer yang disebarkan dalam hitungan detik, identik di seluruh lingkungan. Kontainer bertindak sebagai mekanisme mudah untuk berbagi kode di seluruh tim dan melakukan bootstrap lingkungan pengembangan tanpa memengaruhi sistem file host Anda.

Kontainer portabel dan serbaguna, dapat menjalankan aplikasi yang ditulis dalam bahasa apa pun, dan kompatibel dengan komputer apa pun yang menjalankan Windows 10, versi 1607 atau yang lebih baru, atau Windows Server 2016 atau yang lebih baru. Pengembang dapat membuat dan menguji kontainer secara lokal di laptop atau desktop mereka, lalu menyebarkan gambar kontainer yang sama ke cloud privat, cloud publik, atau penyedia layanan perusahaan mereka. Kelincahan alami kontainer mendukung pola pengembangan aplikasi modern di lingkungan cloud virtual berskala besar. Manfaat yang paling berguna bagi pengembang mungkin adalah kemampuan untuk mengisolasi lingkungan Anda sehingga aplikasi Anda selalu mendapatkan versi pustaka yang Anda tentukan, menghindari konflik dengan dependensi.

Kontainer untuk profesional TI

Kontainer membantu admin membuat infrastruktur yang lebih mudah diperbarui dan dikelola, dan yang lebih sepenuhnya menggunakan sumber daya perangkat keras. Profesional TI dapat menggunakan kontainer untuk menyediakan lingkungan standar untuk tim pengembangan, QA, dan produksi mereka. Dengan menggunakan kontainer, administrator sistem mengabstraksi perbedaan dalam penginstalan sistem operasi dan infrastruktur yang mendasar.

Anda juga dapat menggunakan mode kontainer interaktif untuk menjalankan instans alat baris perintah yang bertentangan pada sistem yang sama.

Orkestrasi kontainer

Orkestrator adalah bagian penting dari infrastruktur saat menyiapkan lingkungan berbasis kontainer. Meskipun Anda dapat mengelola beberapa kontainer secara manual menggunakan Docker dan Windows, aplikasi sering menggunakan lima, sepuluh, atau bahkan ratusan kontainer, yang merupakan tempat orkestrator masuk.

Orkestrator kontainer dibangun untuk membantu mengelola kontainer dalam skala besar dan dalam produksi. Orkestrator menyediakan fungsionalitas untuk:

Orkestrator membantu Anda menumbuhkan aplikasi kontainer dalam skala besar, menyediakan fungsionalitas untuk:

  • Menyebarkan dalam skala besar
  • Penjadwalan beban kerja
  • Pemantauan kesehatan
  • Gagal ketika node gagal
  • Meningkatkan atau menurunkan skala
  • Jaringan
  • Penemuan layanan
  • Mengoordinasikan peningkatan aplikasi
  • Afinitas node kluster

Ada banyak orkestrator berbeda yang dapat Anda gunakan dengan kontainer Windows; berikut adalah opsi yang disediakan Microsoft:

Coba kontainer di Windows

Untuk mulai menggunakan kontainer di Windows Server atau Windows 10, lihat yang berikut ini:

Untuk bantuan dalam memutuskan layanan Azure mana yang tepat untuk skenario Anda, lihat Layanan kontainer Azure dan Memilih layanan Azure apa yang akan digunakan untuk menghosting aplikasi Anda.

Sumber daya

Untuk melihat sumber daya untuk menggunakan kontainer Windows Server:

  • Untuk masalah saat ini dan peningkatan fitur yang direncanakan , lihat repositori GitHub kontainer Windows.

  • Lihat blog kami: Blog Kontainer Windows.

  • Untuk menghubungi tim kontainer Windows Server, kirim email ke Pelanggan Kontainer Windows.