Docker for Mac, dengan Hipervisor di macOS

Jika Anda pengembang perangkat lunak, terutamanya di sisi server, tentunya pernah mendengar tentang Docker, sebuah alat otomatisasi kontainer perangkat lunak yang ditulis dengan bahasa pemrograman Go. Dengan menggunakan Docker, mengembangkan dan meluncurkan layanan backend untuk aplikasi web maupun mobile jadi lebih mudah karena Docker memanfaatkan teknologi virtualisasi di level sistem operasi bernama LXC (Linux Containers) untuk mengisolasi aplikasi.

Linux, Lagi!

Seperti yang saya tulis dalam tulisan saya yang lalu, teknologi mainstream modern kebanyakan dimulai dari Linux, akan tetapi relatif sedikit pengembang yang langsung menggunakan Linux sebagai alat sehari-hari. Saya sendiri menggunakan macOS.

Sayangnya untuk teknologi virtualisasi, Apple termasuk tertinggal. Hal ini tidak lepas karena kehadiran Apple di pasar server itu bisa dikatakan tidak ada. Karena itu, untuk memakai Docker dengan nyaman, pengembang memakai solusi pihak ketiga misalnya VirtualBox.

Ketika Docker mulai populer, ada proyek bernama boot2docker yang menyediakan distro Linux yang cukup ukurannya kecil untuk dijadikan sistem dasar Docker. Docker akhirnya mengadopsinya untuk membuat Docker Machine dan Docker Toolbox. Hanya saja, untuk menjalankannya tetap perlu memasang VirtualBox atau VMWare yang menyediakan hipervisor untuk menjalankan sistem operasi Linux secara virtual.

Hipervisor di macOS

Sebenarnya Apple sudah menyediakan kerangka kerja bernama Hypervisor.framework yang merupakan hipervisor asli yang ditanamkan di macOS semenjak OSX Yosemite. Awalnya dimaksudkan supaya pengembang yang memakai fitur hipervisor tidak perlu memasang driver sehingga bisa didistribusikan melalui Mac App Store.

Fitur ini bukan fitur yang dipasarkan secara heboh layaknya Siri tetapi ada satu proyek bebas terbuka bernama xhyve yang membuat Proof of Concept penggunaan kerangka kerja Hypervisor.framework yang lalu dikembangkan lebih lanjut oleh Docker menjadi HyperKit yang menjadi basis dari Docker for Mac.

Dengan adanya Docker for Mac, keberadaan VirtualBox tidak diperlukan lagi untuk menjalankan Docker.

Instalasi dan Penggunaan

Layaknya aplikasi macOS yang lain, cukup unduh berkas disk image dan seret aplikasinya ke direktori /Applications:

Jalankan seperti biasa, dan kita akan menjumpai logo Docker di batang menu bagian atas yang artinya sebuah kernel Linux sudah berjalan di atas hipervisor layaknya sebuah aplikasi biasa yang kebetulan sudah menjalankan daemon Docker.

Tampilan batang menu Docker for Mac

Untuk memakainya, cukup mudah, layaknya kita memakai Docker di atas Linux langsung.

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Yang artinya tidak ada container yang sedang berjalan. Percobaan pertama kita jalankan image busybox.

% docker run --rm -it busybox uname -a 
Linux b432ae7d7ee9 4.4.15-moby #1 SMP Thu Jul 28 21:30:50 UTC 2016 x86_64 GNU/Linux

Jadi kita sudah berhasil menjalankan busybox di hipervisor yang jalan di Mac, tanpa perlu perangkat lunak tambahan.

Selamat Mencoba.