Sebagai pengembang/developer/programmer, Anda mungkin pernah mendengar tentang Docker di beberapa titik dalam kehidupan profesional Anda. Dan Anda mungkin menyadari bahwa itu telah menjadi teknologi penting untuk diketahui oleh setiap pengembang aplikasi.

Apa itu Docker? Mengapa Perlu Menggunakan Docker? Lengkap!
Apa itu Docker? Mengapa Perlu Menggunakan Docker? Lengkap!


Jika Anda tidak tahu apa yang saya bicarakan, jangan khawatir – karena untuk itulah artikel ini dibuat oleh Konsep Koding.

Apa Itu Docker?

Docker, bagian dari proyek Moby, adalah kerangka kerja perangkat lunak untuk membangun, menjalankan, dan mengelola container di server dan cloud. Istilah "docker" dapat merujuk ke alat (perintah dan daemon) atau ke format file Dockerfile.

Apa itu Docker?
Apa itu Docker? 


Dulu ketika Anda ingin menjalankan aplikasi web, Anda membeli server, menginstal Linux, menyiapkan tumpukan LAMP, dan menjalankan aplikasi. Jika aplikasi Anda menjadi populer, Anda mempraktikkan penyeimbangan beban yang baik dengan menyiapkan server kedua untuk memastikan aplikasi tidak mogok karena terlalu banyak lalu lintas.

Namun, zaman telah berubah, dan alih-alih berfokus pada server tunggal, Internet dibangun di atas susunan server yang saling bergantung dan berlebihan dalam sistem yang biasa disebut "cloud". Berkat inovasi seperti ruang nama dan cgroup kernel Linux, konsep server dapat dihapus dari batasan perangkat keras dan pada dasarnya menjadi bagian dari perangkat lunak. Server berbasis perangkat lunak ini disebut container, dan merupakan campuran hibrida dari OS Linux yang mereka jalankan ditambah lingkungan runtime hyper-localized (isi container).


Apa itu Container?

Containers, atau Linux Containers, adalah teknologi yang memungkinkan kita untuk mengisolasi proses kernel tertentu dan mengelabui mereka agar berpikir bahwa hanya merekalah yang berjalan di komputer yang benar-benar baru.

Berbeda dari Mesin Virtual, sebuah wadah/Container dapat berbagi kernel sistem operasi sementara hanya memiliki binari/pustaka yang berbeda yang dimuat dengannya.

Dengan kata lain, Anda tidak perlu menginstal OS yang berbeda (disebut guest OS) di dalam OS host Anda. Anda dapat menjalankan beberapa wadah dalam satu OS tanpa menginstal beberapa OS tamu yang berbeda.


Memahami Container Docker

Teknologi kontainer/Container dapat dianggap sebagai tiga kategori berbeda:

  • Builder: alat atau serangkaian alat yang digunakan untuk membangun wadah, seperti distrobuilder untuk LXC, atau Dockerfile untuk Docker.
  • Engine: aplikasi yang digunakan untuk menjalankan container. Untuk Docker, ini mengacu pada perintah docker dan daemon dockerd. Untuk yang lain, ini dapat merujuk ke daemon containerd dan perintah yang relevan (seperti podman.)
  • Orchestration: teknologi yang digunakan untuk mengelola banyak container, termasuk Kubernetes dan OKD.

Bagaimana Docker Bekerja?

Docker mengemas aplikasi dan semua dependensinya dalam wadah virtual yang dapat berjalan di server Linux mana pun. Inilah mengapa kami menyebutnya kontainer. Karena mereka memiliki semua dependensi yang diperlukan yang terkandung dalam satu perangkat lunak.

Docker terdiri dari elemen-elemen berikut:

  • Sebuah Daemon, yang digunakan untuk membangun, menjalankan, dan mengelola container
  • API tingkat tinggi yang memungkinkan pengguna berkomunikasi dengan Daemon,
  • dan CLI, antarmuka yang kami gunakan untuk membuat semua ini tersedia.
Container sering mengirimkan aplikasi dan konfigurasi, yang berarti bahwa sysadmin tidak perlu menghabiskan banyak waktu untuk menjalankan aplikasi dalam kontainer dibandingkan dengan saat aplikasi diinstal dari sumber tradisional. Dockerhub dan Quay.io adalah repositori yang menawarkan gambar untuk digunakan oleh mesin kontainer.

Namun, daya tarik kontainer terbesar adalah kemampuannya untuk "mati" dengan anggun dan muncul kembali saat penyeimbangan beban menuntutnya. Baik kematian penampung disebabkan oleh kerusakan atau karena tidak lagi diperlukan karena lalu lintas server rendah, penampung "murah" untuk memulai, dan dirancang untuk muncul dan menghilang dengan mulus. Karena container dimaksudkan untuk sementara dan untuk menelurkan instance baru sesering yang diperlukan, pemantauan dan pengelolaannya diharapkan tidak dilakukan oleh manusia secara real time, melainkan otomatis.


Container Docker

Wadah/Container adalah abstraksi dari lapisan aplikasi. Mereka mengemas semua kode, perpustakaan, dan dependensi bersama-sama. Hal ini memungkinkan beberapa container berjalan di host yang sama, sehingga Anda dapat menggunakan sumber daya host tersebut dengan lebih efisien.

Setiap container berjalan sebagai proses yang terisolasi di ruang pengguna dan menggunakan lebih sedikit ruang daripada VM biasa karena arsitektur berlapisnya.

Lapisan ini disebut gambar perantara, dan gambar ini dibuat setiap kali Anda menjalankan perintah baru di Dockerfile, misalnya, jika Anda memiliki Dockerfile seperti ini:

FROM node:stable

COPY . /usr/src/app

WORKDIR /usr/src/app

RUN npm install grpc

RUN npm install

ENTRYPOINT ["npm", "start"]


Mengapa menggunakan Docker?

Salah satu hal hebat tentang open source adalah Anda memiliki pilihan dalam teknologi apa yang Anda gunakan untuk menyelesaikan suatu tugas. Mesin Docker dapat berguna untuk pengembang tunggal yang membutuhkan lingkungan yang ringan dan bersih untuk pengujian, tetapi tanpa memerlukan orkestrasi yang rumit. Jika Docker tersedia di sistem Anda dan semua orang di sekitar Anda sudah familiar dengan toolchain Docker, maka Docker Community Edition (docker-ce) adalah cara yang bagus untuk memulai dengan container.

Dockerhub dan Quay.io adalah repositori yang menawarkan gambar untuk mesin kontainer pilihan Anda. Jika Docker Community Edition tidak tersedia atau tidak didukung, maka Podman adalah pilihan yang bijaksana. Upaya untuk memastikan standar terbuka berlaku sedang berlangsung, jadi strategi jangka panjang yang penting untuk solusi wadah Anda harus tetap berpegang pada proyek yang menghormati dan mendorong sumber terbuka dan standar terbuka. Ekstra berpemilik mungkin tampak menarik pada awalnya, tetapi seperti biasanya, Anda kehilangan fleksibilitas pilihan setelah Anda memasukkan alat Anda ke produk yang gagal memungkinkan migrasi. Wadah dapat membebaskan, selama mereka dibebaskan.

Sekian artikel Apa itu Docker? Mengapa Perlu Menggunakan Docker? Lengkap! semoga artikel tentang Docker dari KonsepKoding ini dapat bermanfaat dan membantu kamu yang tertarik dengan Docker.


Baca Juga Artikel Konsep Koding Lainnya: