Docker Di WSL 2 [Update]

DOCKERWSLWINDOWS 10KUBERNETESDOCKER DESKTOP

Kalau anda biasa memakai WSL (Windows Subsystem Linux) untuk pengembangan maka sekarang bisa saya katakan ada fitur upgrade gratis yaitu anda bisa memakai Docker, di WSL 2 tepatnya! ๐ŸŒŸ

WSL 2

Perbedaan terbesar dari WSL 2 dari yang sebelumnya adalah WSL 2 memakai kernel Linux tersendiri (forking-an kernel.org) sehingga pasti ada benefit seperti peningkatan perfomansi, booting time yang lebih cepat, penggunaan resource yang lebih sedikit dan kemampuan full system call sehingga memungkinkan software seperti Docker bisa di instal secara langsung ๐Ÿš€.

Windows 10 Update

Pastikan Windows 10 telah terupdate, untuk amannya pake saja versi 2004. Anda bisa memakai tool seperti Windows 10 Update Assistant atau kalau lebih ekstrim fresh install OS โœŒ๏ธ.

Perlu di ingat bahwa anda memerlukan Windows 10 Pro untuk memakai fitur virtualisasi.

Fitur Windows

Selanjutnya enable beberapa fitur windows yaitu Virtual Machine Platform dan Windows Subsystem For Linux

Tekan tombol keyboard berlogo Windows dan ketik โ€œwindows featureโ€

Distro WSL

Anda bisa menginstall distro kesukaan anda di WSL tetapi disini saya pakai Ubuntu 18.04 LTS.

Ubuntu di Microsoft Store

Secara default distro yang terinstal masih memakai WSL 1 sehingga untuk mengubahnya ke WSL 2, cek dahulu dengan perintah berikut

wsl -l -v

kemudian untuk mengubah distro supaya berjalan di WSL 2

wsl --set-version Ubuntu-18.04 2

atau jika anda ingin secara default nanti distro yang terinstall memakai WSL 2 ketikkan saja perintah berikut

wsl --set-default-version 2

Docker WSL 2

Langkah kemudian instal Docker Desktop untuk Windows yang mendukung WSL 2 Windows 10. Silahkan mengunduh Docker Desktop.

Kelebihan utama dari Docker Desktop ini adalah terintegrasinya antara Docker dan Kubernetes artinya anda tidak hanya mendapatkan fitur Docker di WSL 2 tetapi juga lingkungan deployment yaitu Kubernetes single node cluster dalam lingkungan lokal๐Ÿ‘.

docker desktop kubernetes

Docker Desktop juga menyediakan kubectl yaitu cli tool untuk berinteraksi dengan kluster Kubernetes di Windows 10.

kubectl

Sebagai contoh untuk mengecek status pods pada kluster Kubernetes

PS C:\Users\Equan> kubectl get pods
NAME                                         READY   STATUS    RESTARTS   AGE
kubernetes-getting-started-bd5fd58b5-7klp9   1/1     Running   2          10h
kubernetes-getting-started-bd5fd58b5-w6vt4   1/1     Running   2          10h
kubernetes-getting-started-bd5fd58b5-wr2d8   1/1     Running   0          10h

tidak hanya itu saja,dashboard dari Docker Desktop sangat berguna untuk memonitor ataupun mengatur docker dan juga untuk pods.

pods

Kalau anda baru mengetahui atau baru mempelajari Kubernetes, Saya sarankan mengikuti Tutorial Kubernetes. Intinya Kubernetes ada untuk mengatur layanan supaya tidak terjadi down time service dan juga memudahkan dalam rescale service.

Tool Tambahan Pengembangan

Karena Saya memakai Visual Studio Code (VSC) dalam mengembangkan aplikasi maka ada beberapa saran Saya mengenai pemakaian WSL & Docker di VSC.

Visual Studio Code + Remote WSL

Saya sarankan menginstal ekstensi Remote WSL untuk editor Visual Studio Code.

Salah satu benefit melakukan pengembangan di WSL adalah terpusatnya kode pengembangan di satu tempat dibandingkan jika anda menginstal stack di Windows 10 secara langsung yang biasanya menurut pengalaman saya sangat morat-marit (alias berantakan!).

VSC + Remote WSL ๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘

Visual Studio Code + Docker

Pastikan juga menginstal ekstensi Docker di Visual Studio agar lebih mudah dalam penanganan dan pengawasan image/container.

Secara umum bisa dikatakan kita memakai Visual Studio Code di Windows 10 untuk mengembangkan aplikasi yang berada di lingkungan Linux dan semua itu terjadi pada satu mesin ๐Ÿ˜ฒ dan itu mungkin dengan adanya ekstensi seperti Remote WSL plus tambahan dukungan docker native di WSL 2.

Visual Studio Code + Kubernetes

Karena Docker Desktop WSL 2 juga mendukung Kubernetes maka akan lebih baik jika anda menginstal ekstensi Kubernetes pada VSC.

kubernetes vsc

Ekstensi ini mendukung banyak platform Kubernetes seperti Azure, Minikube, Amazon Web Service, GCP dll.

Docker Hub

Kalau sempat silahkan mencoba Docker Kalender Jawa - Modul ES6 ๐Ÿ‹.

Referensi

Dokumentasi resmi Microsoft Docker WSL 2


Mau tidak mau kita sebagai programer harus menyesuaikan norma baru dalam pengembangan aplikasi yaitu mengedepankan kemudahan instalasi dan distribusi perangkat lunak yang kita kembangkan dan itu bisa dicapai salah satunya kalau kita mempelajari solusi seperti Docker dan Kubernetes.

Platform OS tidak begitu penting menurut saya hanya saja beberapa tahun terakhir saya melihat kalau Windows 10 semakin ramah untuk pengembangan dan deployment aplikasi, jadi bebas bebas saja anda mau memakai Linux maupun macOS tapi yang pasti tetap produktif dan solutif.

Ok. Semangat koding! ๐Ÿ‘จ๐Ÿฝ

Komentar