Pengenalan tentang docker

Assalamualaikum wr.wb
 Gambar terkait
Pada kesempatan kali ini saya akan menjelaskan docker....
Pasti kalian bertanya-tanya apa sihh docker itu??
Sebelum masuk ke docker kita harus tau terlebih dahulu perbedaan docker container dengan VM

Apa yang dimaksud dengan "container" dan "VM"
  • Container dan VM memiliki tujuan yang mirip: untuk mengisolasi aplikasi dan dependencies mereka ke dalam unit mandiri yang dapat berfungsi di mana saja.

  • Selain itu, container dan VM mengurangi kebutuhan hardware secara fisik, sehingga penggunaan resource komputerisasi lebih efisien dari segi biaya, sumber daya, dan penggunaan listrik.
Perbedaan utama dari keduanya hanya ada di dalam pendekatan arsitektural mereka

VirtualMachine


Sebuah VM pada dasarnya adalah tiruan dari komputer fisik yang mengeksekusi program seperti komputer aslinya. VM bekerja di atas mesin fisik atau hardware, menggunakan “hypervisor”. Sebagai gantinya, hypervisor ini berjalan di atas mesin host (inang) atau biasa disebut “bare metal“.
Hypervisor bisa berupa software, firmware, atau hardware yang menjalankan VM di atasnya. Hypervisor sendiri berjalan di atas hardware asli atau fisik, biasa disebut mesin host. Mesin yang berfungsi sebagai inang ini menyediakan resource atau kebutuhan komputerisasi VM, termasuk RAM dan CPU. Resource kemudian dibagi-bagi antar VM yang ada di atas mesin host dan bisa disebarkan sesuai keinginan atau kebutuhan. Jadi, jika salah satu VM ingin menjalankan aplikasi yang lebih berat daripada VM lain, resource yang lebih banyak juga akan dialokasikan pada VM tersebut.

VM yang berjalan di atas mesin terkadang disebut sebagai “guest machine”. VM juga menjalankan aplikasi ataupun segala macam kebutuhan VM, juga membawa sekumpulan hardware “tiruan” atau “virtualized”, seperti adapter network yang merupakan tiruan, hardware virtual, RAM, dan bahkan CPU virtual. Sehingga dengan sistem lengkap ini, sebenarnya VM sudah bisa menjalankan sistem operasinya secara berdikari. Dari dalam VM, guest machine terkesan seperti unit tersendiri, tidak terlihat seperti virtual saat kita memakainya. Sedangkan, dari luar VM, kita tahu bahwa VM ini berjalan di atas mesin host dan saling berbagi resource dengan VM lain yang “satu inang” dengannya.

Container


Tidak seperti VM yang menyediakan virtualisasi perangkat keras, container menyediakan virtualisasi di level sistem operasi, dengan memisahkan user space. Namun, secara tujuan, container terlihat seperti VM. Container juga memiliki ruang tersendiri untuk pemrosesan data, dapat mengeksekusi perintah sebagai root, dan memiliki interface jaringan dan alamat IP tersendiri. Container juga bisa dikonfigurasi dengan routing khusus dan aturan iptables atau firewall. Container juga dapat ditambahkan storage, dapat mounting storage, dan masih banyak lagi.

Salah satu perbedaan terbesar antara container dengan VM adalah container berbagi kernel sistem milik host dengan container lainnya. Sedangkan, VM yang memiliki sistem operasi masing-masing, tentu saja memiliki sistem kernel masing-masing pula.
Diagram di atas menunjukkan bahwa container hanya membagi user space, dan bukan kernelnya atau hardware virtual seperti yang dilakukan oleh VM. Setiap container mengisolasi ruang kerja user, namun mengizinkan beberapa container untuk berjalan di atas satu mesin host. Kita dapat melihat bahwa para container ini berbagi level sistem operasi. Bagian yang terpisah hanyalah bin dan lib. Inilah yang menyebabkan container sangat ringan.


Okee sekarang kita masuk ke pengertian docker
Docker adalah sebuah project open-source yang menyediakan platform terbuka untuk developer maupun sysadmin untuk dapat membangun, mengemas, dan menjalankan aplikasi dimanapun sebagai sebuah wadah (container) yang ringan. Docker awal mulanya dikembangkan oleh Solomon Hykes sebagai project internal di dotCloud, sebuah perusahaan PaaS (platform as a service).

Docker Engine adalah
Docker Engine adalah aplikasi client-server dengan komponen-komponen utama:
  • Sebuah server dengan jenis program long-running disebut proses daemon. Daemon mengkreasikan dan mengelola objek-objek Docker. Yang termasuk Docker object adalah image, kontainer, network, volume data, dan sebagainya. 
  • Sebuah REST API yang menentukan interface yang dapat digunakan program untuk berbicara dengan daemon dan menginstruksikan apa yang harus dilakukan.
  • Sebuah client antarmuka baris perintah (Command Line Interface)CLI. 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.
Keuntungan docker adalah  
  1. Pengiriman aplikasi lebih cepat
  2. Memudahkan penyebaran dan scalling
Istilah-istilah dalam docker 
  • Docker Daemon
Docker daemon berfungsi untuk membangun, mendistribusikan dan menjalankan container docker. User tidak dapat langsung menggunakan docker daemon, akan tetapi untuk menggunakan docker daemon maka user menggunakan docker client sebagai perantara atau cli.

  • Docker Images 
Docker image merupakan dasar template untuk docker container, sebuah image biasanya berisi OS maupun aplikasi yang telah diinstall dan telah jadi. Image ini digunakan untuk menjalankan container, di docker index terdapat banyak image yang bisa kita pilih dan kita gunakan sebagai base image.
  • Docker Container
Docker container sendiri merupakan sebuah image yang dapat dikemas dan dibaca tulis, container berjalan diatas image. Pada setiap perubahan yang disimpan pada container akan menyebabkan terbentuknya layer baru di atas base image. Kita dapat melakukan instalasi aplikasi didalamnya dan melakukan penyimpanan.
  • Docker registry
Docker registri merupakan repositori distribusi kumpulan docker image yang terpusat baik bersifat public dan private repositori. Registry public Docker disebut dengan Docker Hub. Disini kita bisa push image kita sendiri maupun pull image.
  • Docker File
Dockerfile merupakan skrip yang yang berisi atau terdiri dari serangkaian perintah (intruksi) yang akan dieksekusi secara otomatisasi dan berurutan untuk membangun sebuah image. Saat ini docker hanya berjalan pada Linux, tapi kita juga bisa menggunakan dan menjalankannya di Windows mapaun Mac OS X dengan memanfaatkan dan menggunakan boot2docker , kedepannya akan lebih mudah lagi dalam menginstalnya, anda dapat menggunakan kitematic.

OKee cukup sekian dari saya, kalau ada salah kata mohon dimaafkan
Semoga bermanfaat

Wasslamualaikum wr.wb