Docker Di WSL2
Tags: docker, wsl, vscode, bahasa
Published: 2019-09-16 05:11:26


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 Insider Program
Pada saat tulisan ini dibuat untuk memakai WSL 2 anda perlu mengikuti [Windows Insider Program](https://insider.windows.com/en-us/for-developers/).

###*"Sederhananya OS Windows 10 yang anda pakai harus merupakan edisi latest build"*

<figure>
<img src="https://bsv7nq.ch.files.1drv.com/y4mELxdNx933pyrTPzxPKOdxopC2LqaXaBz3H7BdJAQhvd_DBljnQrvLvR1mAqpGdqeKNE20dR7fJfCRBMod3dMdq5cY1JzkM-wiOuLkz0wsToDH7OoLUvI9a2V6qcCyGMP7lj2P7Yppgfza-H1kTgpaEprrkxFsosnOO7letcT1DIRsOtt23YwEDKELwTi48Mx-Dl0FfQ7S-O0aBr5ECrI7A" width="1737" height="977" />
<figcaption>Ada watermark "Windows Pro Evaluation Copy. Build 18980..."</figcaption>
</figure>


Tips:
1. Pada awalnya untuk mengupdate OS Windows 10 ke latest build, pastikan anda
mengatur update OS ke tipe “fast” yaitu update dengan frekuensi yang sangat cepat 
(saran saya pake bandwith yang besar karena saat saya update ke latest build ukuran update bisa sebesar 6GB!).
2. Setelah update ke “fast” ubah settingan update windows insider ke “slow”

<figure>
<img src="https://bswjww.ch.files.1drv.com/y4mwIGkzCFPcQpYae0eLwsDLYYagY2lClb7A-wAhmdIiSqFSBCay5ijY3LE15JJUKfVc5VX2y7FjMgsGbNREpXyczUZbpVNYJ70iHUoSB9Qshflj9jqDe0t3jJjVci7ldA9WeGWF0elWa2irg1j1EN1SBgVdGvfglVKsZdPaUm2ddyJOffBqHbIASgpUJ1cw99GhDkgvhDcX3CkSkabfoj1lg" width="1505" height="494" />
<figcaption>Settingan Windows Insider Program setelah update “fast”</figcaption>
</figure>

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

<figure>
<img src="https://cjq9ta.ch.files.1drv.com/y4m_7Xc0n4YqXrM0h2AH9FwLwfvf8gOdzyaeW_7_-lXD-LUsUkLBiKJ3Mn6xGeFC-9HeLdYVGxcPo-G3kyvBsS9nqChgBE_jKE-CK554mp9UqbqQqouLelDLqK-5VZivOVlCcGYWMjHCqm91FZn0MOwnJzflV9uRkUaXrIjW9VPDYrv7ydnjMoow9KJRofFMvYlT48X-NA8mv1SmXmAVgLFOg" width="623" height="565" />
<figcaption>Tekan tombol keyboard berlogo Windows dan ketik “windows feature”</figcaption>
</figure>

###*"Perlu di ingat bahwa anda memerlukan versi Windows 10 Pro untuk memakai fitur virtualisasi"*

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


<figure>
<img src="https://cjpywq.ch.files.1drv.com/y4mgMepBNQ2iTRyLYkT4loAocanotJolzz_ODcRrsIn4HYR6lgeFZAOnP5f3PC0gbuhuuiloSs8bk4_VxVW9IaZhwdNz1dw6oGfE9SO9LZPxFGMfac05lscdOBretebu7Yb5O8NjZQwRYKLHGPzvwwshJLekUL8zmJo9RERIZIzxmqLiy7_QMw0Od89ZV-GSR-g906h30LBS4MMKLOE1XzTrA" width="1370" height="681" />
<figcaption></figcaption>
</figure>

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`

> Jika memakai Ubuntu, pastikan anda menginstal versi "Ubuntu 18.04 LTS" bukan versi yang bernama "Ubuntu" saja, karena adanya bug di versi preview Docker Desktop — https://github.com/docker/for-win/issues/4361

## Docker WSL 2
Langkah kemudian instal Docker Desktop untuk Windows yang mendukung WSL 2.

> Pada saat tulisan ini dibuat Docker di WSL 2 masih dalam preview. 
[📥 Download](https://download.docker.com/win/edge/36883/Docker%20Desktop%20Installer.exe)

Sebelum instal Docker Desktop ini ada baiknya anda menjalankan Distro terlebih dahulu.

Setelah terinstal maka akan muncul menu “WSL 2 Tech Preview” seperti screenshot berikut

<figure>
<img src="https://cjrznq.ch.files.1drv.com/y4mE262etM_nS-yW--_j0idP3Xrb9sQXKBnGRh-HEFKZemjgxfyn7clmKpczTRaD1JRgkAqjHuhcAk1NloCnXFVdb6sMkH8VR8mKY0d0gl9B3KwQKASchP_B6ZvGKsMCx2xihGJuaXvcQo0QfoEfvcerWRxqp6cOUoLSA53SvW9hMXKAgYxgx0js3T-xY-wjicYXtx003oTeshGDwV-WoX5fg" width="997" height="508" />
<figcaption>Menu WSL 2 Tech Preview</figcaption>
</figure>

Untuk memulai Docker di WSL 2 klik menu tersebut maka kemudian akan muncul daemon WSL2 seperti pada gambar berikut

<figure>
<img src="https://cjqoqg.ch.files.1drv.com/y4mZGUpw6E9DknwqTfe74NjJcY8bkjS5I_i27sZLEW6vWbDnwuWDdFtHGV9YEP4NRq3qiUFzCLHNiTwSo2IkTQuYL6pszHqGBZxxgUeZcO8SnG17QEtCBO_QmCO8st03-yK4yGMwiFAiSD9KoLLTv2nmOLRd7ocoLW74eIS9O2XYdOJwySMzppbdYdIiSjDKIkKELnY58hZKp8YRH9di23KNw" width="1191" height="894" />
</figure>

Jika memakai Docker WSL 2 anda tidak perlu menginstal secara manual docker di distro karena proses ini akan di atur oleh Docker Desktop, sehingga jika anda langsung mengecek versi docker melalui *command line*

<figure>
<img src="https://cjpreg.ch.files.1drv.com/y4m7sPQ9MPAv89cNiMWlcPpzOAQ5lgIDvypBC0KVOV2q_ak9lXY4RqbpCqbg97SM0ei2M-d2mUpZ8YTvUVvhsMbkWyEiAC3D4i0zYUIdI3Ba3EJzPgFI-Gs2dDr9yKPPIlUMkwd3H882C_K7vBubWTXoqXYxDnvQkmelwzWvFo8ocqstGY80_iUVluWftMcvFzE32xbJ2C-zMpIWnAAKnDBfg" width="1021" height="238" />
</figure>

## Visual Studio Code + Remote WSL

Jika anda suka pengembangan web maka 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!).

<figure>
<img src="https://cjrs7g.ch.files.1drv.com/y4mZR6U6BXsHFPjjcu922B7_ZK3M89SGNDH2tAYMdCXfxWGmn72_j9qiFJn8a5pjAASJRblqSzCjkyetfoZ8JtecJzHf2VxFgUyef3so7m8lRqcfL_p70T0-yrxXxpNc9tvEU66e81FFzXDEwMb4SDPq_MFZOBRsNvUB58jdM5iO0Q8Ipcsi1PuBQ4FRWnl6xoTTBOysd11AVSU1d8-qXmYOA" width="1920" height="1080" />
<figcaption>VSC + Remote WSL 👏 👏 👏</figcaption>
</figure>

## Visual Studio Code + Docker

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

<figure>
<img src="https://cjqhyw.ch.files.1drv.com/y4m0g1aEArPoJ0nNHzWiC6hGNrC8o2Ecdt8m1FNSRmyfDwkBEh_sGsbciFrrr_3jN3OUJLg_4BGJ2CYpw_rtP_-UbE1Xb4Tz0VbfbwiAkMBNzfsMdtSMmVTiu3REMR1fro7Ub_phImXFncTCyU4c7i4pIpLjB37oTZ6zQVM-J-bs0adN_s6lfMXabe27v4xz3hhDKl5KwbjsUlVM7cBdV4iaQ" width="1920" height="1080" />
</figure>

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.

###*Yaa Ini Namanya Upgrade!!*

Ok. Semangat koding man teman... 👨🏽‍💻

---

## Docker Hub

Kalau sempat anda bisa melihat docker hasil setup diatas 😄 di Docker Hub dengan link dibawah ini,

🐋 [`Docker Kalender Jawa - Modul ES6`](https://hub.docker.com/r/junwatu/kalenderjawa-esm) 🐋

Trims :pray:

---

- Artikel ini juga ditulis di Medium [Docker di WSL2] (https://medium.com/pemrograman/docker-di-wsl-2-2c369b816763) ❄️ 

- Cover Image - Photo by [Omer Rana](https://unsplash.com/@omerrana?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/search/photos/indonesia?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)