"Build, Ship and Run Any App, Anywhere" – ini adalah moto di mana platform kontainer open source Docker mempromosikan alternatif yang fleksibel dan hemat sumber daya untuk emulasi komponen perangkat keras berdasarkan mesin virtual (VM). Dalam tutorial Docker kami untuk pemula, kami sampai ke dasar perbedaan antara dua teknik virtualisasi dan memperkenalkan Anda ke proyek buruh pelabuhan open source menggunakan instruksi langkah demi langkah yang jelas.Uji Coba VPS Gratis oleh IONOS
Coba vServer secara gratis sekarang - Coba Server Virtual Anda selama 30 hari!
Sementara virtualisasi perangkat keras klasik bergantung pada memulai beberapa sistem tamu pada sistem host umum, Docker menggunakan apa yang disebut kontainer untuk menjalankan aplikasi sebagai proses terisolasi pada sistem yang sama. Oleh karena itu, virtualisasi berbasis kontainer juga disebut sebagai virtualisasi tingkat sistem operasi.
Grafik berikut menunjukkan perbedaan utama dalam struktur arsitektur kedua teknik virtualisasi: Sementara setiap mesin virtual memulai sistem operasinya sendiri, kontainer Docker berbagi kernel sistem host
Kedua teknik memungkinkan pengembang dan administrator sistem untuk menyebarkan aplikasi yang berbeda dengan persyaratan yang berbeda secara paralel pada sistem fisik yang sama. Namun, ada perbedaan besar dalam hal konsumsi sumber daya dan portabilitas.Container: Virtualisasi dengan overhead minimal
Jika aplikasi dienkapsulasi sebagai bagian dari virtualisasi perangkat keras klasik, ini dilakukan dengan bantuan apa yang disebut hypervisor. Ini bertindak sebagai lapisan abstrak antara sistem host dan tamu virtual. Setiap sistem tamu direalisasikan sebagai mesin lengkap dengan kernel sistem operasi terpisah. Sumber daya perangkat keras dari sistem host (CPU, memori, ruang disk, periferal yang tersedia) dialokasikan secara proporsional oleh hypervisor.
Virtualisasi berbasis kontainer, di sisi lain, tidak mereplikasi seluruh sistem tamu. Sebaliknya, aplikasi diluncurkan dalam wadah. Meskipun ini berbagi kernel yang sama, yaitu sistem host, mereka berjalan sebagai proses terisolasi di ruang pengguna.
Sistem operasi modern biasanya membagi memori virtual menjadi dua area terpisah: ruang kernel dan ruang pengguna. Sementara ruang kernel dicadangkan secara eksklusif untuk pengoperasian kernel dan komponen inti lainnya dari sistem operasi, ruang pengguna mewakili area memori yang tersedia untuk aplikasi. Pemisahan yang ketat antara kernel dan ruang pengguna terutama berfungsi untuk melindungi sistem dari aplikasi berbahaya atau rusak.
Keuntungan besar dari virtualisasi berbasis kontainer adalah bahwa aplikasi dengan persyaratan yang berbeda dapat dijalankan secara terpisah satu sama lain tanpa harus menerima overhead dari sistem tamu yang terpisah. Teknologi kontainer menggunakan dua fungsi dasar kernel Linux: kelompok kontrol (cgroup) dan namespace kernel.Cgroup membatasi akses proses ke memori, CPU, dan sumber daya I / O, mencegah persyaratan sumber daya dari satu proses dari mempengaruhi proses lain yang sedang berjalan.Namespaces (namespaces) membatasi proses dan proses anaknya ke bagian tertentu dari sistem yang mendasarinya. Untuk merangkum proses, Docker menggunakan namespace di lima area berbeda:Identifikasi Sistem (UTS): Virtualisasi berbasis kontainer menggunakan ruang nama UTS untuk menetapkan kontainer nama host dan domain mereka sendiri.ID Proses (PID): Setiap kontainer Docker menggunakan namespace sendiri untuk ID proses. Proses yang berjalan di luar wadah tidak terlihat di dalam wadah. Dengan demikian, proses kontainer pada sistem host yang sama dapat memiliki PID yang sama tanpa konflik.Interprocess Communication (IPC): IPC namespaces mengisolasi proses dalam wadah dengan cara yang mencegah komunikasi dengan proses di luar wadah.Sumber Daya Jaringan (NET): Ruang nama jaringan memungkinkan Anda menetapkan sumber daya jaringan terpisah seperti alamat IP atau tabel rute ke setiap kontainer.File system mount points (MNT): Berkat mount namespaces, proses yang terisolasi tidak pernah melihat seluruh sistem file host, tetapi hanya sebagian kecil dari itu - biasanya gambar yang dibuat khusus untuk wadah itu.
Hingga versi 0.8.1, isolasi proses buruh pelabuhan didasarkan pada kontainer Linux (LXC). Sejak versi 0.9, format kontainer yang dikembangkan sendiri Libcontainer tersedia untuk pengguna. Hal ini memungkinkan untuk menggunakan Docker di seluruh platform dan menjalankan kontainer yang sama pada sistem host yang berbeda. Ini juga memungkinkan untuk menawarkan versi Docker untuk Windows dan macOS. Skalabilitas, ketersediaan tinggi, dan portabilitas
Teknologi kontainer bukan hanya alternatif hemat sumber daya untuk virtualisasi perangkat keras klasik. Kontainer perangkat lunak juga memungkinkan untuk menyebarkan aplikasi di seluruh platform dan di infrastruktur yang berbeda tanpa harus menyesuaikannya secara khusus dengan konfigurasi perangkat keras atau perangkat lunak dari sistem host masing-masing.
Docker menggunakan apa yang disebut gambar sebagai gambar portabel dari kontainer perangkat lunak. Gambar kontainer berisi aplikasi individual termasuk semua pustaka, file biner dan konfigurasi yang diperlukan untuk runtime proses aplikasi yang dienkapsulasi, dan dengan demikian hanya menempatkan tuntutan minimal pada sistem host masing-masing. Dengan demikian, kontainer aplikasi dapat dipindahkan antara sistem Linux, Windows, atau macOS yang berbeda tanpa konfigurasi lebih lanjut, selama platform Docker telah diinstal sebagai lapisan abstrak. Oleh karena itu Docker adalah dasar yang ideal untuk menerapkan arsitektur perangkat lunak yang dapat diskalakan dan sangat tersedia. Pada sistem produksi, Docker digunakan oleh perusahaan seperti Spotify, Google, eBay atau Zalando.Dedicated Server dari IONOS
Perangkat keras memenuhi cloud: Server khusus dengan integrasi cloud dan dengan penagihan menit demi menit, termasuk konsultan pribadi!
SSL CertificateDocker: Struktur dan Fungsi
Docker adalah proyek perangkat lunak paling terkenal yang menyediakan pengguna dengan teknologi virtualisasi berbasis kontainer. Platform open source mengandalkan tiga komponen dasar: Untuk menjalankan kontainer, pengguna hanya membutuhkan mesin Docker dan gambar Docker khusus yang dapat diperoleh melalui Docker Hub atau dibuat sendiri. Gambar Docker
Mirip dengan mesin virtual, kontainer Docker didasarkan pada gambar. Gambar adalah template baca-saja yang berisi semua instruksi yang dibutuhkan mesin Docker untuk membuat kontainer. Gambar portabel dari kontainer digambarkan sebagai gambar Docker dalam bentuk file teks - itu disebut file Docker. Jika kontainer akan dimulai pada sistem, paket dengan gambar masing-masing pertama kali dimuat – kecuali jika tersedia secara lokal. Gambar yang dimuat menyediakan sistem file yang diperlukan untuk runtime, termasuk semua parameter. Sebuah kontainer dapat dilihat sebagai proses berjalan dari gambar. The Docker Hub
Docker Hub adalah registri berbasis cloud untuk repositori perangkat lunak - dengan kata lain, semacam perpustakaan untuk gambar Docker. Layanan online dibagi menjadi area publik dan pribadi. Area publik menawarkan pengguna kesempatan untuk mengunggah gambar yang dikembangkan sendiri dan membagikannya dengan komunitas. Sejumlah gambar resmi dari tim pengembangan Docker dan proyek open source yang mapan tersedia di sini. Gambar yang diunggah ke area pribadi registri tidak dapat diakses publik dan dengan demikian dapat dibagikan, misalnya, di dalam perusahaan atau di lingkaran teman dan kenalan Anda sendiri. Anda dapat mengakses hub Docker di hub.docker.com.Mesin Docker
Inti dari proyek Docker adalah mesin Docker. Ini adalah aplikasi client-server open source yang tersedia untuk pengguna dalam versi saat ini di semua platform yang sudah mapan.