Docker? Apa itu Docker?


Apasih Docker itu?

Docker merupakan sebuah platform perangkat lunak yang dapat memungkinkan kita untuk membuat, menguji, dan menerapkan aplikasi dengan cepat. Docker mengemas perangkat lunak ke dalam unit standar yang disebut Docker Container. Di dalam Docker Container ini kita dapat memiliki semua yang diperlukan perangkat lunak agar dapat berfungsi termasuk pustaka, alat sistem, source kode, dan waktu proses. Dengan adanya Docker Container ini aplikasi bisa dijalankan secara terisolasi di environment yang kompleks sehingga tidak menimbulkan masalah pada environment lainnya. Munkin analogi yang mudah dipahami dari Docker seperti ini, kotak besar disebut sistem komputer, sementara kotak-kotak kecilnya adalah container.

Bagaimana cara kerja dari Docker?

Docker nantinya sebagai sebuah platform akan bekerja sebagai sistem operasi bagi Docker Container. Docker akan diinstal pada setiap server, sehingga Docker akan menyediakan perintah-perintah sederhana yang dapat digunakan untuk membuat, memulai, dan menghentikan Docker Container.

Pada praktek kerjanya docker akan memanfaatkan arsitektur client-server, di mana client berinteraksi dengan Docker Daemon. Docker Daemon mempunyai tugas untuk menjalankan, mendistribusikan, dan membuat Docker Container. Docker Client maupun Docker Daemon dapat berjalan pada sistem operasi yang sama.

Istilah-Istilah yang ada pada Docker

Mungkin akan lebih baik dan bagus ketika kita mengetahui juga beberapa istilah yang ada pada Docker atau yang berkaitan dengan Docker. Dibawah ini beberapa istilah yang perlu kita ketahui.

  • Docker image : kumpulan file yang berisi informasi untuk membangun sebuah Docker Container .
  • Docker container : environment untuk mengemas aplikasi yang mencakup system tools, library, code, runtime dan konfigurasi.
  • Docker client : tempat dimana user dapat mengirimkan command seperti docker run, docker build, dan docker pull pada Docker daemon.
  • Docker Engine RestAPI : komponen yang bisa diakses client melalui HTTP untuk berinteraksi dengan Docker daemon.
  • Docker daemon : tempat pengelolaan Docker Image, Docker Container, Docker Network, dan Docker Volume. Docker Daemon menyediakan antarmuka command line (CLI) pada sisi client sehingga pengguna dapat berinteraksi dengan proses Docker Daemon melalui Docker API.
  • Docker host : komponen yang bertugas menerima perintah dari Docker client dan menyediakan environment untuk menjalankan aplikasi.
  • Docker registry : tempat untuk menyimpan Docker image yang kemudian akan memberikan output sesuai dengan perintah yang diberikan.
  • Docker hub : layanan yang dapat digunakan untuk berbagi Docker Image.
  • Docker desktop : aplikasi untuk Mac atau Windows yang mencakup Docker Engine, Docker CLI client, Docker Compose, Kubernetes, serta mencakup akses ke Docker Hub. 
  • Docker file : file teks yang berfungsi sebagai instruksi untuk membangun sebuah Docker Image.

Kelebihan

Lalu apa kelebihan dari menggunakan Docker? berikut beberapa poin penjelasannya :

  • Portabilitas : memungkinkan pengguna untuk membuat atau menginstal aplikasi kompleks di perangkat, dan aplikasi tersebut dijamin bisa berjalan.
  • Automasi : user bisa mengotomatiskan pekerjaan dengan mudah tentunya dengan dengan bantuan cron job dan adanya Docker Container. Dengan automasi tentunya dapat membantu developer untuk menghindari tugas yang membosankan dan repetitif, serta menghemat waktu.
  • Komunitas : Docker memiliki channel Slack khusus, forum komunitas, dan ribuan kontributor di website developer seperti StackOverflow. Terlebih lagi, ada lebih dari 9 juta image container yang dihosting di Docker Hub.

Instalasi Docker

Untuk melakukan instalasi Docker anda bisa langsung aja ke dokumentasi resmi dari Docker atau bisa juga klik link yang berikut ini.

Kesimpulan

Pada akhirnya Docker merupakan sebuah platform yang dapat memungkinkan developer untuk mengemas, mengirim, dan menjalankan aplikasi dengan konsisten di berbagai lingkungan menggunakan containerisasi. Sehingga dapat mempermudah pengembangan, testing, dan deployment aplikasi dengan lebih efisien dan dapat diandalkan.