Halo guys, kali ini gw mulai menyempatkan menulis tutorial kembali. Udah lama banget kayaknya ga menulis tutorial, maklum lagi banyak kerjaan di kantor dan juga lagi sibuk nulis cerita liburan hehe. Kali ini gw akan membahas mengenai docker, tentu saja gw akan buat beberapa bagian karena kalau sekaligus banyak tar ga jadi seru. Nah dibagian pertama ini gw akan menjelaskan dulu mengenai docker, apa itu docker, kenapa docker dan cara simple menggunakan docker.
Lalu apa itu sebenarnya docker ?
Docker merupakan sebuah tools yang digunakan untuk mempermudah development dalam membangun, mendeploy dan menjalankan sebuah aplikasi dengan mengisolasinya dalam sebuah containter. Docker cara kerjanya mirip dengan virtual machine hanya saja docker tidak perlu virtual operating system ketika dijalankan karena docker menggunakan kernel linux yang sama dengan operating system ketika dijalankan. Hal ini lah yang membuat docker tidak menghabiskan memory seperti halnya virtual machine.
Apa bedanya docker dengan vagrant ?
Sebelum kenal docker, dulunya gw adalah pengguna vagrant. Hanya saja vagrant bukanlah tools yang dapat digunakan bagi kalian yang punya laptop dengan spec rendah karena begitu virtual machinenya nyala, modarlah dah tuh laptop. Oleh karena itu gw sempatkan untuk mempelajari docker. Nah untuk perbedaan jelasnya, mungkin bisa baca artikelnya disini dan disini.
Kenapa harus pakai docker ?
Seperti tadi gw yang jelaskan diatas, vagrant menghabiskan banyak resource ram ketika dijalankan. Hal ini sangat tidak efisien bagi kalian yang memiliki spec laptop rendah. Dengan menggunakan docker, kalian sudah siapkan aplikasi anda untuk ready deploy di production. Mengapa demikian? karena isolasi dalam docker bisa di deploy kapan pun dengan menjadikan docker image. Nah daripada bingung-bingung dengan penjelasan gw, kita langsung praktek saja.
Beberapa hal yang perlu dimengerti dalam mempelajari docker :
- Images.
Di google banyak sekali penjelasan mengenai images sebagai file system, snapshot atau multiple layer dari sebuah aplikasi yang sifatnya executable. Gw lebih memilih menggambarkannya sebagai Class. Sesuatu yang sifatnya abstract dan belum memiliki tujuan yang jelas. Supaya images dapat dipakai, maka dibuatlah Object atau istilah dockernya disebut Container. - Containter.
Seperti yang gw jelaskan diatas, jika images adalah Class maka container adalah Object. Dimana sebuah class dapat memiliki banyak Object. Menurut gw penjelasan ini lebih mudah bagi kalian para developer ketimbang penjelasan yang berbelit-belit lainnya. - Volume.
Seperti namanya volume, yang berarti tempat penyimpanan data dari sebuah container. Ketika membuat container, maka docker akan membuatkan sebuah volume untuk menyimpan data. Konsepnya dapat dibuat secara explisit oleh user atau dibuatkan otomatis oleh docker jika tidak didefine. Hal ini mungkin kelihatannya simple, hanya saja jika tidak dimaintain dengan baik akan menimbulkan masalah karena terlalu banyak garbage data dalam volume yang dibuat docker.
Oke hal yang pertama kali kalian lakukan sebelum menggunakan docker, ya install dockernya dulu hehe. Setelah selesai melakukan install, silahkan cek versinya terlebih dahulu untuk memastikan semua sudah terinstall dengan baik.
1 |
docker -v |

Check Docker Version
Setelah itu kalian bisa memulai memilih image mana yang akan digunakan di docker hub . Untuk permulaan gw akan menggunakan docker hello world. Ya tau lah biasa kan kalau mau ngoding dikasi yang simple dulu yakni hello world. Untuk menjalankan hello world berikut commandnya :
1 |
docker run hello-world |
Ketika kalian melakukan command diatas, maka docker pertama kali akan mengecek di local computer kalian apakah images tersebut ada atau tidak. Jika tidak ada, maka secara otomatis docker akan menjalankan perintah docker-pull yang berarti mengambil images tersebut dari docker hub. Setelah berhasil mendownload images tersebut, maka docker membuat container baru dan juga menjalankan container tersebut. Untuk hasilnya sebagai berikut.

Docker Run Hello World
Selamat, kalian sudah berhasil membuat simple container dan menjalankannya. Setelah berhasil menjalankan container, perlu diingat untuk mengecek sudah berapa banyak container yang dibuat dari images yang sama. Untuk mengeceknya bisa menggunakan command berikut.
1 |
docker ps |

Docker PS
Loh kok kosong? sebenarnya tidak kosong, hanya saja ketika menjalankan container hello-word, container tersebut langsung tidak aktif namun tetap jalan di background. Untuk melihatnya perlu disesuaikan commandnya menjadi seperti ini.
1 |
docker ps -a |

Docker ps -a
Container yang tidak aktif ini akan cukup mengganggu karena kalau tidak dimaintain dengan baik maka akan menghabiskan resource yang ada. Oleh karena itu, kita harus menghapusnya. Untuk commandnya sebagai berikut.
1 |
docker rm -f <container_id> |

Docker Remove
Mungkin pada nanya-nanya, kok container_id nya cuma 3 karakter depan aja? Kenapa ga semua? sebenarnya docker punya kemampuan ( sejenis regex ) untuk mengetahui container_id mana yang sesuai. Jadi daripada copy semua, cukup lihat saja 3 karakter pertama. Namun kalau ada 2 container yang 3 karakternya sama, apa yang akan terjadi? Ya silahkan coba aja sendiri, karena gw belum pernah ketemu sampai bisa 3 karakter sama hehe.
Oke demikian sedikit tutorial singkat dari gw, mungkin sangat sedikit namun kan ada part-part berikutnya nanti yang nyusul hehe. Salam super.