Pengenalan Docker Sebagai Platform yang Efisien

Docker adalah sebuah platform terbuka untuk mengembangkan, menyebarkan, dan menjalankan aplikasi. Docker dirancang untuk membuat aplikasi lebih cepat. Anda dapat memisahkan aplikasi dari infrastruktur dan memperlakukan infrastruktur seperti aplikasi yang dikelola. Docker membantu pembangunan kode lebih cepat, uji coba lebih cepat, dna menyebarkan lebih cepat, dan memperpendek siklus antara menulis kode hingga kode tersebut dijalankan. Pengenalan Docker ini bermanfaat untuk pemahaman awal para calon pengguna docker di seluruh Nusantara.

Pengenalan Docker

Docker dapat mempercepat kinerja infrastruktur IT dengan menggabungkan fitur kernel containerization dengan alur kerja dan perkakas yang membantu anda mengelola dan menyebarkan aplikasi. Dalam pengenalan docker ada beberapa istilah-istilah yang perlu di pahami.

Definisi Docker Platform

Pada intinya, Docker menyediakan cara untuk menjalankan hampir semua aplikasi secara aman yang terisolasi dalam sebuah wadah. Isolasi dan keamanan memungkinkan anda untuk menjalankan banyak wadah secara bersamaan pada host anda. Sifat ringan dari kontainer, yang berjalan tanpa beban tambahan hypervisor, berarti anda bisa lebih mengoptimalkan kegunaan hardware Anda.

Disekitar wadah adalah perkakas dan platform yang dapat membantu anda dalam beberapa cara:

  • Meletakan aplikasi anda (dan komponen pendukung) ke dalam wadah Docker
  • Mendistribusikan dan mengirimkan kontainer ke tim anda untuk pengujian dan pengembangan lebih lanjut
  • Menyebarkan aplikasi tersebut ke lingkungan produksi anda, apakah itu di sebuah data center lokal atau Cloud

Definisi Docker Engine

Docker Engine adalah aplikasi client-server dengan komponen-komponen utama:

  • Sebuah server dengan jenis program long-running disebut proses daemon.
  • Sebuah REST API yang menentukan interface yang dapat digunakan program untuk berbicara dengan daemon dan menginstruksikan apa yang harus dilakukan.
  • Sebuah klien antarmuka baris perintah (Command Line Interface / CLI).

alur kerja container engine ~ seri pengenalan docker

CLI memanfaatkan Docker REST API untuk mengontrol atau berinteraksi dengan Docker daemon melalui scripting atau perintah CLI langsung. Banyak aplikasi lain Docker memanfaatkan dasar API dan CLI.

Daemon mengkreasikan dan mengelola objek-objek Docker. Yang termasuk Docker object adalah image, kontainer, network, volume data, dan sebagainya.

Apa Saja Kegunaan Docker ?

Pengiriman Aplikasi Lebih Cepat

Docker dapat membantu siklus pengembangan anda. Docker memungkinkan pengembang untuk mengembangkan pada wadah lokal yang berisi aplikasi dan layanan. Hal ini kemudian dapat di integrasikan ke dalam integrasi dan penyebaran alur kerja secara terus menerus.

Misalnya, pengembang anda menulis kode secara lokal dan berbagi pengembangan mereka melalui Docker dengan rekan-rekan mereka. Ketika mereka siap, mereka dapat mendorong kode dan pekerjaan lain yang dikembangkan ke sebuah lingkungan pengujian dan melakukan tes yang diperlukan. Dari lingkungan pengujian, anda kemudian dapat mendorong Docker Image ke dalam produksi dan menyebarkan kode anda.

Memudahkan Penyebaran dan Scaling

Platform berbasis kontainer Docker memungkinkan untuk beban kerja yang sangat portabel. Kontainer Docker dapat berjalan pada host lokal pengembang, pada mesin fisik atau virtual di sebuah data center, atau di Cloud.

Portabilitas Docker dengan keringanan yang di usung Docker, dapat membuat pengelolaan beban kerja dinamis menjadi lebih mudah. Anda dapat menggunakan Docker untuk cepat meningkatkan atau menghapus suatu aplikasi dan layanan. Kecepatan Docker ini dapat di-skala-kan dengan kecepatan secara real time.

Mencapai Kepadatan yang Lebih Tinggi dan Menjalankan Beban Kerja yang Lebih

Docker sangat ringan dan cepat. Ini memberikan alternatif, efektifitas biaya untuk mesin virtual berbasis hypervisor. Hal ini sangat berguna di lingkungan kepadatan tinggi: misalnya, membangun Cloud anda sendiri atau platform-as-a-Service (PaaS). Tetapi juga berguna untuk penyebaran kecil dan menengah di mana anda ingin mendapatkan lebih banyak dari sumber daya yang anda miliki.

Arsitektur Docker

Docker menggunakan arsitektur client-server. Klien Docker berkomunikasi dengan daemon Docker, yang melakukan pekerjaan berat untuk membangun, menjalankan, dan mendistribusikan wadah Docker anda. Kedua klien Docker dan daemon dapat berjalan pada sistem yang sama, atau anda dapat menghubungkan klien Docker ke daemon Docker secara remote. Klien Docker dan daemon berkomunikasi melalui soket atau melalui REST API.

pengenalan arsitektur docker

Docker daemon

Seperti ditunjukkan dalam diagram di atas, daemon Docker berjalan pada mesin host. pengguna tidak langsung berinteraksi dengan daemon, melainkan melalui klien Docker.

Docker client

Docker client, dalam bentuk docker biner, adalah antarmuka pengguna utama untuk Docker. Docker client untuk menerima perintah dari pengguna dan berkomunikasi bolak-balik dengan Docker daemon.

Pengenalan Komponen di Dalam Docker

Untuk lebih memahami bagian di dalam Docker, anda perlu memahami tentang tiga istilah dalam pengenalan docker ini:

  • Docker Image
  • Docker Registry
  • Docker Container

Docker Image

Sebuah Docker Image adalah template read-only. Sebagai contoh, sebuah Image bisa berisi sistem operasi Ubuntu dengan Apache dan aplikasi web yang anda instal. Image digunakan untuk membuat wadah Docker. Docker menyediakan cara yang mudah untuk membangun Image baru atau memperbarui Image yang ada, atau anda dapat men-download Docker Image yang dibuat oleh orang lain. Docker Image adalah komponen pembangunan di Docker.

Docker Registry

Docker rergistry berisi Image. Ini merupakan penyimpanan umum atau pribadi dari Image yang di upload atau di download. Registri Docker publik disediakan dengan Docker Hub. Docker Registry melayani koleksi Image yang ada untuk digunakan. Ini dapat merupakan Image yang anda buat sendiri atau anda dapat menggunakan Image lain yang telah dibuat sebelumnya. Docker registry adalah komponen distribusi Docker.

Docker Container

Docker container mirip dengan direktori. Sebuah kontainer Docker memegang segala sesuatu yang diperlukan untuk menjalankan aplikasi. Setiap kontainer diciptakan dari Docker Image. Kontainer Docker dapat dijalankan, dimulai, berhenti, di pindah, dan dihapus. Setiap kontainer adalah sebuah platform aplikasi terisolasi secara aman. Kontainer Docker adalah komponen untuk menjalankan Docker.

Cara Kerja Docker Image

Kita sudah melihat bahwa Docker Image adalah template read-only yang diluncurkan Docker container. Setiap gambar terdiri dari serangkaian lapisan. Docker membuat penggunaan sistem berkas union untuk menggabungkan lapisan ini ke dalam satu Image. File sistem union memungkinkan file dan direktori sistem file terpisah, yang dikenal sebagai cabang, harus transparan overlay, membentuk sistem file tunggal yang koheren.

File Sistem Union

Atau sering disebut UnionFS, merupakan file sistem yang beroperasi dengan menciptakan lapisan, sehingga sangat ringan dan cepat. Docker Engine menggunakan file sistem union untuk memberikan blok bangunan pada kontainer. Docker Engine dapat menggunakan beberapa sistem file union seperti: AUFS, btrfs, vfs, dan DeviceMapper.

Salah satu alasan Docker begitu ringan adalah karena lapisan ini. Bila Anda mengubah Docker image, sebagai contoh : memperbarui aplikasi ke versi terbaru maka layer baru juga akan dibangun. Jadi, daripada mengganti seluruh Image atau membangun kembali secara keseluruhan, karena anda mungkin dapat lakukan dengan mesin virtual, hanya lapisan saja yang ditambahkan atau diperbarui. Sekarang anda tidak perlu mendistribusikan Image baru, hanya update, membuat penyebaran Docker Image lebih cepat dan sederhana.

Setiap Image dimulai dari basis Image, misalnya ubuntu, basis Image Ubuntu, atau fedora, basis Image Fedora. Anda juga dapat menggunakan Image anda sendiri sebagai basis untuk Image baru, misalnya jika anda memiliki basis Image Apache maka anda bisa menggunakan ini sebagai dasar semua Image aplikasi web Anda.

Docker Image kemudian dibangun dari semua basis Image secara sederhana, set deskriptif langkah kita sebut petunjuk. Setiap instruksi menciptakan lapisan baru di Image kita. Instruksi mencakup tindakan seperti:

  • Menjalankan perintah
  • Menambahkan file atau direktori
  • Membuat variabel lingkungan
  • Proses apa saja yang harus dijalankan ketika meluncurkan sebuah wadah dari Image

Instruksi ini disimpan dalam sebuah file yang disebut Dockerfile. Sebuah Dockerfile adalah script berbasis teks yang berisi petunjuk dan perintah untuk membangun Image dari basis Image. Docker membaca Dockerfile ini ketika anda meminta membangun dari suatu image, mengeksekusi instruksi, dan mengembalikan Image akhir.

Cara Kerja Docker Registry

Docker registry adalah penyimpanan untuk Docker Image anda. Setelah anda membangun Docker Image, anda dapat mengirimnya ke registry publik seperti Docker Hub atau registri anda sendiri yang berjalan di belakang firewall anda.

Menggunakan klien Docker, anda dapat mencari Image yang sudah diterbitkan dan kemudian menarik mereka ke Host Docker anda untuk membangun wadahnya.

Docker Hub menyediakan baik penyimpanan publik dan private untuk Image. Penyimpanan publik dapat dicari dan dapat didownload oleh siapa saja. Penyimpanan pribadi dikecualikan dari hasil pencarian dan hanya anda sertqa pengguna tertentu yang dapat menarik Image ke bawah dan menggunakannya untuk membangun wadah atau kontainer. Anda dapat mendaftar untuk paket penyimpanan pada data center sesuai lokasi bisnis anda.

Cara Kerja Kontainer

Sebuah kontainer terdiri dari sistem operasi, file yang ditambahkan pengguna, dan meta-data. Seperti yang kita ketahui, setiap kontainer dibangun dari sebuah Image. Image yang memberitahu Docker isi container, proses apa yang harus dijalankan ketika contaoner diluncurkan, dan berbagai data konfigurasi lainnya. Docker Image dalam keadaan read-only. Ketika Docker menjalankan container dari sebuah Image, ia menambahkan lapisan read-write di atas Image (menggunakan sistem union file seperti penjelasan diatas) di mana aplikasi anda kemudian dapat berjalan.

Apa yang terjadi ketika Container Docker dijalankan ?

Baik dengan menggunakan Docker biner atau melalui API, klien Docker memberitahu daemon Docker untuk menjalankan sebuah container.

$ docker run -i -t ubuntu /bin/bash

Klien Docker Engine diluncurkan menggunakan docker biner dengan pilihan “run” untuk menjalankan container yang baru. Minimal Docker client perlu memberitahu Docker daemon untuk menjalankan container sebagai berikut:

  • Apakah Docker Image digunakan untuk membangun container dari (misalnya) ubuntu
  • Perintah yang anda ingin jalankan dalam container ketika diluncurkan, misalnya, / bin / bash

Tujuan menajalankan perintah tersebut adalah agar Docker Engine melakukan hal-hal sebagai berikut:

  • Menarik image ubuntu: Docker Engine memeriksa kehadiran Image ubuntu. Jika Image sudah ada, maka Docker Engine menggunakan itu untuk sebuah container baru. Jika tidak ada secara lokal pada host, kemudian Docker Engine dapat menarik dari Docker Hub.
  • Membuat container baru: Setelah Docker Engine memiliki Image, dia akan menggunakan itu untuk membuat sebuah Container.
  • Mengalokasikan filesystem dan memberikan lapisan read-write: Containr ini dibuat dalam sistem file dan lapisan read-write yang ditambahkan ke Image.
  • Mengalokasikan jaringan / antarmuka bridge: Membuat antarmuka jaringan yang memungkinkan container Docker untuk berkomunikasi dengan host lokal.
  • Mengatur alamat IP: Mencari dan menempelkan alamat IP yang tersedia dari sebuah pool.
    Mengeksekusi proses yang anda tentukan: Menjalankan aplikasi anda, dan
    Mangkap serta memberikan keluaran aplikasi: Menghubungkan dan membuat log standar untuk input, output dan kesalahan untuk anda sehingga anda dapat melihat bagaimana aplikasi anda berjalan.

Setelah aplikasi berjalan, anda dapat merubah, mengkonfigurasi, dan ketika aplikasi telah selesai dan siap di distribusikan ada dapat hapus kontainer aplikasi anda.

Sebelum lebih lanjut mengenai docker, ada baiknya menonton video pengenalan docker dibawah ini untuk mengulang apa yang telah anda pahami.

Dari video pengenalan docker, dapat disimpulkan bahwa docker dapat mengtasai banyak sistem berbeda secara aman dengan teknik isolasi yang dinamakan container.

Setelah memahami pengenalan docker dan istilah-istilahnya, mari kita pelajari bagaimana cara membuat aplikasi pada host docker.

Artikel Terkait

Comments (2)

  1. […] sehingga mempercepat proses penyelesaian suatu pengembangan. Disamping itu, sistem kontenerisasi Docker sebagai platform yang efisien dapat menghemat waktu dan biaya secara […]

  2. […] Docker selain berguna untuk DevOps, Docker juga berguna untuk optimalisasi dan efisiensi infrastruktur IT anda. Dengan docker anda dapat menghemat perangkat fisik dan biaya lisensi. Di berbagai belahan […]

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *