Keberadaan docker sebenarnya sudah agak lama, hanya selama ini saya kurang berminat mencobanya. Sejauh yang saya ketahui waktu itu docker adalah salah satu bentuk virtualisasi bermodel container seperti User Mode Linux, dan saya kurang berminat dengan virtualisasi model container.

Sampai pada beberapa waktu yang lalu saya harus mencoba aplikasi opendronemap untuk rendering image dari drone supaya menjadi peta. Aplikasi opendronemap kalau di bangun secara native , harus menggunakan Ubuntu 16.04 , LTS sih tapi saya sudah tidak punya mesin dengan versi OS itu , jadi ribet lah. Alternatifnya adalah instalasi menggunakan docker. Mulailah saya menggunakan docker.

Docker ternyata bukan sekedar container , tapi container yang dilengkapi dengan API untuk kontrolnya. API ? So what ?

Pernah dengar istilah unikernel ? Unikernel adalah satu image lengkap dengan fungsi kernel , ditambah library secukupnya dan aplikasi yang akan dijalankan. Docker dapat berfungsi seperti unikernel ini.

Pada kebanyakan kasus aplikasi sebenarnya hanya perlu fungsi kernel dan beberapa/sedikit library. Kita dapat membuat docker image yang isinya minimal linux kernel, library yang kita butuhkan dan aplikasi kita. Image ini dapat kita deploy di linux atau Windows versi apapun, karena dependensinya sudah ada pada image yang kita buat. Syaratnya di sistem tersebut sudah terpasang docker dan cpu/processornya sama.

Jadi docker ini bisa menjadi solusi untuk masalah portabilitas, yang sering jadi masalah waktu kita membangun aplikasi di Linux, yang sering harus dicompile ulang di sistem yang akan dituju.

Begitulah jadi sekarang saya baru jatuh cinta nih sama docker, dan baru berpikir untuk men-docker-in aplikasi-aplikasi saya.

Blog inipun saya jalankan menggunakan docker, dengan menjalankan image ghost yang sudah ada di docker hub