Senibina Docker: Mengapa penting?

Blog ini membincangkan seni bina pelabuhan dan pelbagai komponennya. Ia menyoroti ciri-ciri pelabur yang memberitahu kami sebab popularitinya.

Ramai di antara kita percaya bahawa Docker adalah bahagian tidak terpisahkan dari . Jadi di sebalik alat yang luar biasa ini, mesti ada seni bina yang luar biasa. Dalam blog ini, saya akan merangkumi semua perkara yang mesti anda ketahui mengenai seni bina Docker. Inilah perkara-perkara yang akan saya bincangkan di sini:



  1. Virtualisasi Tradisional vs Docker
  2. Aliran Kerja Docker
  3. Senibina Docker

Virtualisasi Tradisional Vs Docker

Apa itu VM (Mesin Maya)?

VM adalah pelayan maya yang meniru pelayan perkakasan. Mesin maya bergantung pada perkakasan fizikal sistem untuk meniru persekitaran yang sama di mana anda memasang aplikasi anda. Bergantung pada kes penggunaan anda, anda boleh menggunakan mesin maya sistem (yang menjalankan keseluruhan OS sebagai proses, yang membolehkan anda mengganti mesin sebenar dengan mesin maya), atau memproses mesin maya yang membolehkan anda menjalankan aplikasi komputer sendirian di maya persekitaran.



Sebelumnya, kami biasa membuat mesin maya, dan setiap VM mempunyai OS yang memerlukan banyak ruang dan menjadikannya berat.

Apa itu Docker?

Docker adalah projek sumber terbuka yang menawarkan penyelesaian pengembangan perisian yang dikenali sebagai kontena. Untuk memahami Docker, anda perlu mengetahui apa bekas itu. Menurut Docker , wadah adalah pakej perisian yang ringan dan tersendiri yang dapat dilaksanakan yang merangkumi semua yang diperlukan untuk menjalankannya.



Container bebas platform dan oleh itu Docker dapat berjalan di platform Windows dan Linux. Malah, Docker juga dapat dijalankan dalam mesin maya sekiranya timbul keperluan untuk melakukannya. Tujuan utama Docker adalah ia membolehkan anda menjalankan aplikasi perkhidmatan mikro dalam seni bina yang diedarkan.

Jika dibandingkan dengan mesin Maya, platform Docker menaikkan pengambilan sumber dari tahap perkakasan ke tahap Sistem Operasi. Ini memungkinkan untuk merealisasikan pelbagai faedah Container mis. mudah alih aplikasi, pemisahan infrastruktur, dan perkhidmatan mikro serba lengkap.

Dengan kata lain, sementara Mesin Maya melengkapkan keseluruhan pelayan perkakasan, Kontainer melengkapkan kernel Sistem Operasi. Ini adalah pendekatan yang sama sekali berbeza untuk virtualisasi dan menghasilkan keadaan yang lebih pantas dan ringan.



vm vs docker - senibina docker - edureka

Aliran Kerja Docker

Pertama, mari kita lihat Docker Engine dan komponennya supaya kita mempunyai idea asas bagaimana sistem ini berfungsi. Docker Engine membolehkan anda mengembangkan, memasang, menghantar, dan menjalankan aplikasi menggunakan komponen berikut:

  1. Docker Daemon : Proses latar belakang berterusan yang menguruskan gambar, kontena, rangkaian, dan jumlah penyimpanan Docker. Daemon Docker sentiasa mendengar permintaan API Docker dan memprosesnya.

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

    perbezaan antara override dan overload
  3. Docker CLI : Pelanggan antara muka baris perintah untuk berinteraksi dengan daemon Docker. Ini sangat memudahkan bagaimana anda mengurus contoh kontena dan merupakan salah satu sebab utama mengapa pembangun suka menggunakan Docker.

Pada mulanya, pelanggan Docker bercakap dengan daemon Docker, yang melakukan pengangkatan berat bangunan, berjalan, dan juga mengedarkan bekas Docker kami. Pada asasnya, kedua-dua klien Docker dan daemon dapat berjalan pada sistem yang sama. Kami juga boleh menghubungkan klien Docker kedaemon Docker jauh. Di samping itu, dengan menggunakan REST API, klien dan daemon Docker, berkomunikasi, melalui soket UNIX atau antara muka rangkaian.

Senibina Docker

Seni bina Docker menggunakan model pelayan pelanggan dan terdiri daripada komponen Docker's Client, Docker Host, Network dan Storage, dan Docker Registry / Hub. Mari kita perhatikan masing-masing secara terperinci.

Pelanggan Docker

Pengguna Docker dapat berinteraksi dengan Docker melalui pelanggan. Apabila sebarang arahan docker dijalankan, pelanggan akan menghantarnya ke daemon dokerd, yang melaksanakannya. API Docker digunakan oleh perintah Docker. Pelanggan Docker boleh berkomunikasi dengan lebih dari satu daemon.

Hos Docker

Host Docker menyediakan persekitaran yang lengkap untuk melaksanakan dan menjalankan aplikasi. Ini terdiri dari Docker daemon, Images, Container, Networks, dan Storage. Seperti yang telah disebutkan sebelumnya, daemon bertanggung jawab atas semua tindakan yang berkaitan dengan kontena dan menerima perintah melalui CLI atauAPI REST. Ia juga dapat berkomunikasi dengan daemon lain untuk menguruskan perkhidmatannya.

Objek Docker

1. Imej

Imej tidak lain hanyalah templat binari baca sahaja yang boleh membina bekas. Mereka juga mengandungi metadata yang menggambarkan kemampuan dan keperluan wadah. Imej digunakan untuk menyimpan dan menghantar aplikasi. Gambar boleh digunakan sendiri untuk membina bekas atau disesuaikan untuk menambahkan elemen tambahan untuk memperluas konfigurasi semasa.

Anda boleh berkongsi gambar kontena di seluruh pasukan dalam perusahaan dengan bantuan pendaftaran kontena peribadi, atau membaginya dengan dunia menggunakan pendaftaran awam seperti Docker Hub. Imej adalah elemen inti dari pengalaman Docker kerana ia membolehkan kerjasama antara pembangun dengan cara yang tidak mungkin dilakukan sebelumnya

2. Bekas

Kontena adalah jenis persekitaran yang dikemas di mana anda menjalankan aplikasi. Kontena ditentukan oleh gambar dan pilihan konfigurasi tambahan yang disediakan semasa memulakan wadah, termasuk dan tidak terhad pada sambungan rangkaian dan pilihan penyimpanan. Kontena hanya mempunyai akses ke sumber yang ditentukan dalam gambar, kecuali akses tambahan ditentukan ketika membina gambar ke dalam bekas.

Anda juga boleh membuat gambar baru berdasarkan keadaan bekas semasa. Oleh kerana kontena jauh lebih kecil daripada VM, alat tersebut dapat berputar dalam beberapa saat, dan menghasilkan kepadatan pelayan yang jauh lebih baik

3. Rangkaian

Rangkaian Docker adalah petikan di mana semua wadah terpencil berkomunikasi. Terdapat terutamanya lima pemacu rangkaian di docker:

    1. Jambatan : Ini adalah pemacu rangkaian lalai untuk kontena. Anda menggunakan rangkaian ini semasa aplikasi anda berjalan di wadah mandiri, iaitu beberapa kontena berkomunikasi dengan host docker yang sama.

    2. Tuan rumah : Pemacu ini menghilangkan pengasingan rangkaian antara kontainer docker dan host docker. Anda boleh menggunakannya apabila anda tidak memerlukan pengasingan rangkaian antara host dan container.

    3. Lapisan : Rangkaian ini membolehkan perkhidmatan kawanan berkomunikasi antara satu sama lain. Anda menggunakannya semasa anda mahu kontena berjalan di host Docker yang berbeza atau semasa anda ingin membentuk perkhidmatan kawanan oleh beberapa aplikasi.

    4. Tiada : Pemacu ini mematikan semua rangkaian.

    5. macvlan : Pemacu ini memberikan alamat mac ke bekas untuk menjadikannya kelihatan seperti peranti fizikal. Ia mengarahkan lalu lintas antara kontena melalui alamat mac mereka. Anda menggunakan rangkaian ini apabila anda mahu kontena kelihatan seperti peranti fizikal, misalnya, semasa memindahkan penyediaan VM.

4. Penyimpanan

Anda boleh menyimpan data dalam lapisan bekas yang boleh ditulis tetapi memerlukan pemacu penyimpanan. Tidak tahan lama, ia akan binasa setiap kali bekas tidak berfungsi. Lebih-lebih lagi, tidak mudah untuk memindahkan data ini. Berkenaan dengan penyimpanan berterusan, Docker menawarkan empat pilihan:

    1. Isipadu Data : Mereka menyediakan kemampuan untuk membuat penyimpanan tetap, dengan kemampuan untuk mengubah nama volume, daftar volume, dan juga menyenaraikan wadah yang terkait dengan volume. Volume Data diletakkan pada sistem fail host, di luar kontena mekanisme copy on write dan cukup cekap.

    2. Bekas Isipadu : Ini adalah pendekatan alternatif di mana wadah khusus mengehadkan kelantangan dan untuk memasangkan kelantangan itu ke bekas lain. Dalam kes ini, bekas isipadu tidak bergantung pada bekas aplikasi dan oleh itu anda boleh membaginya di lebih daripada satu bekas.

    3. Pemasangan Direktori : Pilihan lain adalah memasang direktori tempatan host ke dalam wadah. Dalam kes-kes yang disebutkan sebelumnya, volume harus berada di dalam folder volume Docker, sedangkan ketika datang ke Direktori Pemasangan setiap direktori pada mesin Host dapat digunakan sebagai sumber volume.

    4. Plugin simpanan : Plugin Penyimpanan menyediakan keupayaan untuk menyambung ke platform storan luaran. Plugin ini memetakan penyimpanan dari host ke sumber luaran seperti susunan storan atau perkakas. Anda dapat melihat senarai plugin simpanan di halaman Plugin Docker.

Pendaftaran Docker

Pendaftaran Docker adalah perkhidmatan yang menyediakan lokasi dari tempat anda boleh menyimpan dan memuat turun gambar. Dengan kata lain, pendaftaran Docker mengandungi repositori Docker yang menjadi tuan rumah satu atau lebih Imej Docker. Pendaftaran awam merangkumi dua komponen iaitu Docker Hub dan Docker Cloud. Anda juga boleh menggunakan Pendaftaran Peribadi. Perintah yang paling biasa ketika bekerja dengan pendaftar termasuk: tolak buruh pelabuhan, tarik dok, lari lari

Sekarang setelah anda memahami Docker Architecture, lihat ini oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus Latihan Persijilan Edureka DevOps membantu pelajar memahami apa itu DevOps dan memperoleh kepakaran dalam pelbagai proses dan alat DevOps seperti Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack dan GIT untuk mengautomasikan beberapa langkah dalam SDLC.

Ada soalan untuk kami? Sila sebutkan di bahagian komen 'Docker Architecture' ini dan kami akan menghubungi anda