Dokumen ini membahas Docker sebagai alat pengembangan berbasis kontainer yang memungkinkan pengemasan aplikasi beserta ketergantungannya dalam kontainer terisolasi untuk dijalankan di infrastruktur lokal atau cloud. Docker menggunakan arsitektur klien-server dengan daemon yang berjalan di mesin host dan klien sebagai antarmuka pengguna. Kontainer Docker dijalankan berdasarkan citra yang bersifat read-only sementara perubahan disimpan pada lapisan baru
4. 4
Docker atau Doveloper Tool Berbasis Container adalah kotak dialog
yang berisi perintah-perintah dan setting yang berhubungan dengan
perangkat atau fungsi-fungsi tugas tertentu .
Docker membuat proses pemaketan aplikasi bersama komponennya
(dependencies ) secara cepat dalam sebuah container yang terisolasi,
sehingga dapat dijalankan dalam infrastruktur local (local data center)
ataupun cloud tanpa melakukan perubahan/konfigurasi lagi pada
container , selama host menjalankan Docker Engine.
DOCKER Itu ??
5. 5
Docker menggunakan arsitektur client-server. Docker client
mengirimkan request berupa perintah kepada Docker daemon untuk
membangun, mendistribusikan dan menjalankan container Docker.
Docker Daemon: Seperti terlihat pada gambar, Docker daemon
berjalan pada mesin host. Pengguna tidak berinteraksi secara langsung
dengan Docker daemon tapi melalui Docker client.
Docker Client: Docker client merupakan bentuk dari Docker binary dan
merupakan user interface utama untuk Docker, yang menerima
perintah dari pengguna dan berkomunikasi dengan Docker daemon.
Arsitektur DOCKER
7. 7
Banyaknya terminologi yang merupakan komponen, diantaranya ?
Docker Image
Image Docker merupakan sebuah template yang bersifat read-only.
Contohnya sebuah image yang berisi sistem operasi Ubuntu dengan
Apache dan aplikasi web yang telah kita instalkan. Image ini digunakan
untuk menjalankan container. Misalnya kita akan membangun
sebuah aplikasi PHP dengan apache web server dan mysql, maka
kita hanya perlu mendownload base image berupa LAMP server
lalu kita tinggal menambahkan aplikasi PHP yang sudah kita buat.
Penggunaan DOCKER
8. 8
Docker Container
Container merupakan sebuah image bersifat read-write yang
berjalan di atas image. Docker menggunakan union-file sistem
sebagai back-end file sistem containernya, dimana setiap
perubahan yang disimpan pada container akan menyebabkan
terbentuknya layer baru di atas base image. Jadi container
merupakan layer dimana kita bisa melakukan instalasi aplikasi di
dalamnya. Masing-masing container yang berjalan terisolasi dan
platform aplikasi yang aman.
Penggunaan DOCKER
9. 9
Docker Registry
Docker registry adalah tempat penyimpanan (public atau
private) dimana kita bisa mengupload dan mendownload
image. Registry public Docker disebut dengan Docker Hub.
Di dalamnya terdapat banyak image, bisa merupakan
image yang kita buat sendiri ataupun image yang lain.
Penggunaan DOCKER
10. 10
Saat ini Docker dengan cepat menjadi standar tool berbasis
container, dan banyak diintegrasikan oleh project PaaS
seperti Dokku, Deis, Flynn atau Vagrant.
Beberapa server farm terbesar saat ini menggunakan
container. Pengembangan web yang besar seperti Google
dan Twitter dan platform provider seperti Heroku dan
dotCloud berjalan dengan teknologi container, pada skala
ratusan ribu atau bahkan jutaan container yang berjalan
secara paralel.
Perkembangan Docker
11. 11
Docker sangat ringan dan cepat jika dibandingkan dengan
virtual mesin yang berbasis hypervisor, sehingga menjadikan
Docker sebagai alternatif yang efisien untuk developer tooling.
Sebagai light-weight virtualization Docker hampir tidak
menambah overhead pada mesin host. Hal ini membuat
docker mempunyai beberapa keuntungan:
Layer virtualisasi yang ditawarkan Docker hampir tidak
menambah overhead seperti virtualisasi berbasis hypervisor
pada mesin virtual, besarnya overhead hanya sebesar layanan
aplikasi yang dijalankan pada container itu sendiri (app
process)
Keuntungan kedua adalah kita bisa menjalankan banyak
container dalam mesin host.
Perbandingan Dengan
Virtual Mesin
12. 12
Hasil pengujian saya, dibandingkan dengan VM VirtualBox,
dalam menjalankan 5 mesin virtual ubuntu (berbasis text)
dengan memory 192 MB, Virtualbox menghabiskan memory
lebih dari 1 GB, sedangkan Docker dengan 10 container
ubuntu hanya menghabiskan 27 MB.
Note: Pengujian pada mesin virtual Ubuntu dilakukan dalam
kondisi fresh install .
Perbandingan Dengan
Virtual Mesin
13. 13
Hasil pengujian saya, dibandingkan dengan VM VirtualBox,
dalam menjalankan 5 mesin virtual ubuntu (berbasis text)
dengan memory 192 MB, Virtualbox menghabiskan memory
lebih dari 1 GB, sedangkan Docker dengan 10 container
ubuntu hanya menghabiskan 27 MB.
Note: Pengujian pada mesin virtual Ubuntu dilakukan dalam
kondisi fresh install .
Perbandingan Dengan
Virtual Mesin