Terminologi docker
Tip
Konten ini adalah kutipan dari eBook, .NET Microservices Architecture for Containerized .NET Applications, tersedia di .NET Docs atau sebagai PDF yang dapat diunduh gratis dan dapat dibaca secara offline.
Bagian ini mencantumkan istilah dan definisi yang harus Anda kenal sebelum mempelajari Docker lebih jauh. Untuk definisi lebih lanjut, lihat glosarium ekstensif yang disediakan oleh Docker.
Gambar kontainer mengacu pada paket dengan semua dependensi dan informasi yang diperlukan untuk membuat kontainer. Gambar mencakup semua dependensi (seperti kerangka kerja) ditambah penyebaran dan konfigurasi eksekusi yang akan digunakan oleh runtime kontainer. Biasanya, gambar berasal dari beberapa gambar dasar yang berlapis-lapis yang ditumpuk di atas satu sama lain untuk membentuk sistem file kontainer. Gambar tidak dapat diubah setelah dibuat.
Dockerfile: File teks yang berisi petunjuk untuk membangun gambar Docker. Ini seperti skrip batch, baris pertama menyatakan gambar dasar untuk memulai dan kemudian mengikuti instruksi untuk memasang program yang diperlukan, menyalin file, dan sebagainya, hingga Anda mendapatkan lingkungan kerja yang dibutuhkan.
Build: Tindakan membangun gambar kontainer berdasarkan informasi dan konteks yang disediakan oleh Dockerfile, ditambah file tambahan di folder lokasi gambar dibangun. Anda dapat membuat gambar dengan perintah Docker berikut:
docker build
Kontainer: Sebuah instans dari gambar Docker. Ini mewakili eksekusi satu aplikasi, proses, atau layanan. Ini terdiri dari isi gambar Docker, lingkungan eksekusi, dan serangkaian instruksi standar. Saat menskalakan layanan, Anda membuat beberapa instans kontainer dari gambar yang sama. Atau tugas batch dapat membuat beberapa kontainer dari gambar yang sama, meneruskan parameter yang berbeda ke setiap instans.
Volume: Menawarkan sistem file bisa-tulis yang dapat digunakan kontainer. Karena gambar bersifat baca-saja tetapi sebagian besar program perlu menulis ke sistem file, volume menambahkan lapisan bisa-tulis, di atas gambar kontainer, sehingga program memiliki akses ke sistem file yang dapat ditulis. Program ini tidak tahu bahwa ia mengakses sistem file berlapis, itu hanya sistem file seperti biasa. Volume langsung dalam sistem host dan dikelola oleh Docker.
Tag: Tanda atau label yang dapat Anda terapkan ke gambar sehingga gambar atau versi yang berbeda dari gambar yang sama (tergantung pada nomor versi atau lingkungan target) dapat diidentifikasi.
Build Multi-tahap: Adalah fitur, karena Docker 17.05 atau lebih tinggi, yang membantu mengurangi ukuran gambar akhir. Misalnya, gambar dasar besar, yang berisi SDK dapat digunakan untuk mengkompilasi dan menerbitkan, lalu gambar dasar khusus runtime kecil dapat digunakan untuk menghosting aplikasi.
Repositori (repositori): Kumpulan gambar Docker terkait, berlabel tag yang menunjukkan versi gambar. Beberapa repositori berisi beberapa varian gambar tertentu, seperti gambar yang berisi SDK (lebih berat), gambar yang hanya berisi runtime (lebih ringan), dll. Varian tersebut dapat ditandai dengan tag. Satu repositori dapat berisi varian platform, seperti gambar Linux dan gambar Windows.
Registri: Layanan yang menyediakan akses ke repositori. Registri default untuk sebagian besar gambar publik adalah Hub Docker (dimiliki oleh Docker sebagai organisasi). Registri biasanya berisi repositori dari beberapa tim. Perusahaan seringkali memiliki registri privat untuk menyimpan dan mengelola gambar yang telah dibuat. Azure Container Registry adalah contoh lain.
Gambar multi-arch: Untuk multi-arsitektur (atau multi-platform), ini adalah fitur Docker yang menyederhanakan pemilihan gambar yang sesuai, sesuai dengan platform tempat Docker berjalan. Misalnya, ketika Dockerfile meminta gambar dasar DARI mcr.microsoft.com/dotnet/sdk:8.0 dari registri , itu benar-benar mendapatkan 8.0-nanoserver-ltsc2022, 8.0-nanoserver-1809 atau 8.0-bullseye-slim, tergantung pada sistem operasi dan versi tempat Docker berjalan.
Hub Docker: Registri publik untuk mengunggah gambar dan bekerja dengannya. Hub Docker menyediakan hosting gambar Docker, registri publik atau privat, membangun pemicu dan webhook, dan integrasi dengan GitHub dan Bitbucket.
Azure Container Registry: Sumber daya publik untuk bekerja dengan gambar Docker dan komponennya di Azure. Ini menyediakan registri yang dekat dengan penyebaran Anda di Azure dan yang memberi Anda kontrol atas akses, sehingga memungkinkan untuk menggunakan grup dan izin Azure Active Directory Anda.
Docker Trusted Registry (DTR): Layanan registri Docker (dari Docker) yang dapat dipasang secara lokal sehingga berada dalam pusat data dan jaringan organisasi. Nyaman untuk gambar privat yang harus dikelola dalam perusahaan. Docker Trusted Registry disertakan sebagai bagian dari produk Docker Datacenter.
Docker Desktop: Alat pengembangan untuk Windows dan macOS untuk membangun, menjalankan, dan menguji kontainer secara lokal. Docker Desktop untuk Windows menyediakan lingkungan pengembangan untuk Kontainer Linux dan Windows. Host Linux Docker di Windows didasarkan pada mesin virtual Hyper-V. Host untuk Kontainer Windows secara langsung didasarkan pada Windows. Docker Desktop untuk Mac didasarkan pada kerangka kerja Apple Hypervisor dan hypervisor xhyve, yang menyediakan mesin virtual host Docker Linux di macOS. Docker Desktop untuk Windows dan untuk Mac menggantikan Docker Toolbox, yang didasarkan pada Oracle VirtualBox.
Compose: Alat baris perintah dan format file YAML dengan metadata untuk menentukan dan menjalankan aplikasi multi-kontainer. Anda menentukan satu aplikasi berdasarkan beberapa gambar dengan satu atau beberapa file .yml yang dapat mengambil alih nilai tergantung pada lingkungan. Setelah membuat definisi, Anda dapat menyebarkan seluruh aplikasi multi-kontainer dengan satu perintah (docker-compose up) yang membuat kontainer per gambar pada host Docker.
Kluster: Kumpulan host Docker yang diekspos seolah-olah itu adalah host Docker virtual tunggal, sehingga aplikasi dapat menskalakan ke beberapa instans layanan yang tersebar di beberapa host dalam kluster. Kluster Docker dapat dibuat dengan Kubernetes, Azure Service Fabric, Docker Swarm, dan Mesosphere DC/OS.
Orkestrator: Alat yang menyederhanakan manajemen kluster dan host Docker. Orkestrator memungkinkan Anda mengelola gambar, kontainer, dan host mereka melalui antarmuka baris perintah (CLI) atau antarmuka pengguna grafis. Anda dapat mengelola jaringan kontainer, konfigurasi, penyeimbangan beban, penemuan layanan, ketersediaan tinggi, konfigurasi host Docker, dan banyak lagi. Orkestrator bertanggung jawab untuk menjalankan, mendistribusikan, menskalakan, dan menyembuhkan beban kerja di seluruh kumpulan node. Biasanya, produk orkestrator adalah produk yang sama yang menyediakan infrastruktur kluster, seperti Kubernetes dan Azure Service Fabric, di antara penawaran lain di pasar.