Arsitektur Docker: Mengapa itu penting?



Blog ini membahas tentang arsitektur buruh pelabuhan dan berbagai komponennya. Ini menyoroti fitur buruh pelabuhan yang memberi tahu kita alasan popularitasnya.

Banyak dari kita percaya bahwa Docker adalah bagian integral dari . Jadi di balik alat yang luar biasa ini, pasti ada arsitektur yang menakjubkan. Di blog ini, saya akan membahas semua yang harus Anda ketahui tentang arsitektur Docker. Inilah poin-poin yang akan saya bahas di sini:

  1. Virtualisasi Tradisional vs Docker
  2. Alur Kerja Docker
  3. Arsitektur Docker

Virtualisasi Tradisional Vs Docker

Apa itu VM (Mesin Virtual)?

VM adalah server virtual yang mengemulasi server perangkat keras. Mesin virtual mengandalkan perangkat keras fisik sistem untuk mengemulasi lingkungan yang sama persis tempat Anda memasang aplikasi. Bergantung pada kasus penggunaan Anda, Anda dapat menggunakan mesin virtual sistem (yang menjalankan seluruh OS sebagai suatu proses, memungkinkan Anda untuk menggantikan mesin nyata dengan mesin virtual), atau memproses mesin virtual yang memungkinkan Anda menjalankan aplikasi komputer sendiri di virtual lingkungan Hidup.





Sebelumnya, kami biasa membuat mesin virtual, dan setiap VM memiliki OS yang menghabiskan banyak ruang dan membuatnya menjadi berat.

Apa itu Docker?

Docker adalah proyek sumber terbuka yang menawarkan solusi pengembangan perangkat lunak yang disebut kontainer. Untuk memahami Docker, Anda perlu mengetahui apa itu container. Berdasarkan Buruh pelabuhan , wadah adalah paket perangkat lunak yang ringan, berdiri sendiri, dan dapat dieksekusi yang mencakup semua yang diperlukan untuk menjalankannya.



Kontainer tidak bergantung pada platform dan karenanya Docker dapat berjalan di platform berbasis Windows dan Linux. Faktanya, Docker juga dapat dijalankan di dalam mesin virtual jika ada kebutuhan untuk melakukannya. Tujuan utama Docker adalah memungkinkan Anda menjalankan aplikasi layanan mikro dalam arsitektur terdistribusi.

bagaimana mengubah ganda menjadi int

Jika dibandingkan dengan mesin Virtual, platform Docker meningkatkan abstraksi sumber daya dari tingkat perangkat keras ke tingkat Sistem Operasi. Hal ini memungkinkan realisasi berbagai manfaat Container, mis. portabilitas aplikasi, pemisahan infrastruktur, dan layanan mikro mandiri.

Dengan kata lain, saat Mesin Virtual mengabstraksi seluruh server perangkat keras, Container mengabstraksi kernel Sistem Operasi. Ini adalah pendekatan yang sangat berbeda untuk virtualisasi dan menghasilkan instance yang jauh lebih cepat dan lebih ringan.



vm vs buruh pelabuhan - arsitektur buruh pelabuhan - edureka

Alur Kerja Docker

Pertama, mari kita lihat Mesin Docker dan komponennya sehingga kita memiliki ide dasar tentang cara kerja sistem. Docker Engine memungkinkan Anda mengembangkan, merakit, mengirim, dan menjalankan aplikasi menggunakan komponen berikut:

  1. Docker Daemon : Proses latar belakang persisten yang mengelola image Docker, container, jaringan, dan volume penyimpanan. Daemon Docker secara konstan mendengarkan permintaan API Docker dan memprosesnya.

  2. API REST Docker Engine : API digunakan oleh aplikasi untuk berinteraksi dengan daemon Docker. Itu dapat diakses oleh klien HTTP.

  3. Docker CLI : Klien antarmuka baris perintah untuk berinteraksi dengan daemon Docker. Ini secara signifikan menyederhanakan cara Anda mengelola instance container dan merupakan salah satu alasan utama mengapa developer suka menggunakan Docker.

Pada awalnya, klien Docker berbicara dengan daemon Docker, yang melakukan pengangkatan berat bangunan, menjalankan, serta mendistribusikan kontainer Docker kami. Pada dasarnya, klien Docker dan daemon dapat berjalan di sistem yang sama. Kami juga dapat menghubungkan klien Docker ke filedaemon Docker jarak jauh. Selain itu, dengan menggunakan REST API, klien Docker dan daemon, berkomunikasi, melalui soket UNIX atau antarmuka jaringan.

Arsitektur Docker

Arsitektur Docker menggunakan model klien-server dan terdiri dari Klien Docker, Host Docker, komponen Jaringan dan Penyimpanan, dan Registry / Hub Docker. Mari kita lihat masing-masing ini secara mendetail.

Klien Docker

Pengguna Docker dapat berinteraksi dengan Docker melalui klien. Ketika setiap perintah buruh pelabuhan berjalan, klien mengirimkannya ke daemon dockerd, yang menjalankannya. Docker API digunakan oleh perintah Docker. Klien Docker dapat berkomunikasi dengan lebih dari satu daemon.

Host Docker

Host Docker menyediakan lingkungan yang lengkap untuk menjalankan dan menjalankan aplikasi. Ini terdiri dari daemon Docker, Images, Containers, Networks, dan Storage. Seperti yang disebutkan sebelumnya, daemon bertanggung jawab atas semua tindakan yang terkait dengan container dan menerima perintah melalui CLI atauAPI REST. Ia juga dapat berkomunikasi dengan daemon lain untuk mengelola layanannya.

Objek Docker

1. Gambar

Gambar tidak lain adalah template biner hanya baca yang dapat membangun container. Mereka juga berisi metadata yang menggambarkan kemampuan dan kebutuhan wadah. Gambar digunakan untuk menyimpan dan mengirimkan aplikasi. Gambar dapat digunakan sendiri untuk membuat container atau disesuaikan untuk menambahkan elemen tambahan guna memperluas konfigurasi saat ini.

Anda dapat membagikan gambar kontainer ke seluruh tim dalam perusahaan dengan bantuan registri kontainer pribadi, atau membagikannya dengan dunia menggunakan registri publik seperti Docker Hub. Gambar adalah elemen inti dari pengalaman Docker karena memungkinkan kolaborasi antar pengembang dengan cara yang sebelumnya tidak mungkin dilakukan

2. Wadah

Penampung adalah semacam lingkungan yang dienkapsulasi di mana Anda menjalankan aplikasi. Penampung ditentukan oleh gambar dan opsi konfigurasi tambahan apa pun yang disediakan saat memulai penampung, termasuk dan tidak terbatas pada koneksi jaringan dan opsi penyimpanan. Penampung hanya memiliki akses ke sumber daya yang ditentukan dalam gambar, kecuali akses tambahan ditentukan saat membuat gambar ke dalam penampung.

Anda juga dapat membuat gambar baru berdasarkan status penampung saat ini. Karena container jauh lebih kecil daripada VM, container dapat diputar dalam hitungan detik, dan menghasilkan kepadatan server yang jauh lebih baik

3. Jaringan

Jaringan Docker adalah bagian di mana semua kontainer terisolasi berkomunikasi. Ada lima driver jaringan di buruh pelabuhan:

    1. Jembatan : Ini adalah driver jaringan default untuk sebuah container. Anda menggunakan jaringan ini saat aplikasi Anda berjalan di kontainer mandiri, yaitu beberapa kontainer berkomunikasi dengan host buruh pelabuhan yang sama.

    2. Tuan rumah : Driver ini menghapus isolasi jaringan antara kontainer buruh pelabuhan dan host buruh pelabuhan. Anda dapat menggunakannya saat Anda tidak memerlukan isolasi jaringan apa pun antara host dan penampung.

    3. Hamparan : Jaringan ini memungkinkan layanan swarm untuk berkomunikasi satu sama lain. Anda menggunakannya ketika Anda ingin kontainer berjalan di host Docker yang berbeda atau ketika Anda ingin membentuk layanan swarm oleh banyak aplikasi.

    4. Tidak ada : Driver ini menonaktifkan semua jaringan.

    5. macvlan.dll : Driver ini memberikan alamat mac ke kontainer agar terlihat seperti perangkat fisik. Ini merutekan lalu lintas antar kontainer melalui alamat mac mereka. Anda menggunakan jaringan ini jika ingin penampung terlihat seperti perangkat fisik, misalnya, saat memigrasi penyiapan VM.

4. Penyimpanan

Anda dapat menyimpan data di dalam lapisan kontainer yang dapat ditulis, tetapi itu membutuhkan driver penyimpanan. Menjadi non-persisten, itu binasa setiap kali penampung tidak berjalan. Selain itu, tidak mudah untuk mentransfer data ini. Sehubungan dengan penyimpanan persisten, Docker menawarkan empat opsi:

    1. Volume Data : Mereka menyediakan kemampuan untuk membuat penyimpanan persisten, dengan kemampuan untuk mengganti nama volume, daftar volume, dan juga daftar penampung yang terkait dengan volume. Volume Data ditempatkan pada sistem file host, di luar salinan kontainer pada mekanisme penulisan dan cukup efisien.

    2. Penampung Volume : Ini adalah pendekatan alternatif di mana kontainer khusus menampung volume dan memasang volume itu ke kontainer lain. Dalam kasus ini, penampung volume tidak bergantung pada penampung aplikasi dan oleh karena itu Anda dapat membagikannya ke lebih dari satu penampung.

    3. Pemasangan Direktori : Opsi lainnya adalah memasang direktori lokal host ke dalam wadah. Dalam kasus yang disebutkan sebelumnya, volume harus berada di dalam folder volume Docker, sedangkan ketika menyangkut Mount Direktori, direktori apa pun di mesin Host dapat digunakan sebagai sumber volume.

    4. Plugin Penyimpanan : Plugin Penyimpanan memberikan kemampuan untuk terhubung ke platform penyimpanan eksternal. Plugin ini memetakan penyimpanan dari host ke sumber eksternal seperti larik penyimpanan atau alat. Anda dapat melihat daftar plugin penyimpanan di halaman Plugin Docker.

Docker's Registry

Registri Docker adalah layanan yang menyediakan lokasi tempat Anda dapat menyimpan dan mengunduh gambar. Dengan kata lain, registri Docker berisi repositori Docker yang menghosting satu atau beberapa Gambar Docker. Registri Publik mencakup dua komponen yaitu Docker Hub dan Docker Cloud. Anda juga dapat menggunakan Registri Pribadi. Perintah yang paling umum saat bekerja dengan registri meliputi: docker push, docker pull, docker run

Sekarang Anda telah memahami Arsitektur Docker, lihat ini oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus Pelatihan Sertifikasi DevOps Edureka membantu peserta didik untuk memahami apa itu DevOps dan mendapatkan keahlian dalam berbagai proses dan alat DevOps seperti Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack, dan GIT untuk mengotomatiskan berbagai langkah di SDLC.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar 'Arsitektur Docker' dan kami akan menghubungi Anda kembali