#Nulisgik 2: Mencoba docker di WSL

Harits Abdurrohman
otakbeku
Published in
4 min readApr 11, 2019

Segmen baru buat medium saya. Kali ini Tagnya #nulisgik. Disini kita bakal bahas soal teknologi yang lagi iseng saya coba. Kalian bisa mengikuti beberapa langkah yang akan saya jabarkan dibawah ini .

Tolong cek post saya yang ini kalau kalian belum punya WSL sebelumnya.

⚠ Apa yang saya jabarkan disini belum tentu berhasil dikondisi lain. Jadi untuk kalian yangmencoba silahkan aja, backup data penting punya kalian dan hati-hati sebelum bertindak, lihat dahulu forum jika ada galat. Thanks! ⚠

Awalnya saya sudah pernah mendengar docker dari perkuliahan, hanya saja apa yang saya dengar dari telinga kalau docker ini enak untuk dipakai. Why? Docker adalah sebuah kontainer yang menyimpan sebuah image dari sistem operasi tertentu yang dapat kalian gunakan di berbagai macam environment maupu perangkat. Dengan adanya docker, tidak ada lagi alasan kalau program kalian jalan di lokal tapi di server tidak jalan karena berbeda dependencies. Tentu dengan adanya docker memudahkan untuk development dan lain-lain. Ini salah satu tulisan dari dosen saya di kampus [3].

Di rubik #Nulisgik kali ini saya mencoba untuk memasang docker di WSL. Saya sudah mencoba memakai npiperelay namun belum berhasil. Untuk kalian pembaca yang sudah pernah mencoba dengan npiperelay dan bisa berlajan, tolong kasih tahu ya! Agar saya bisa mencobanya juga. Karena saya gagal pake relay, terpaksa saya pakai cara lain, yaitu di expose. Tapi ingat, kalau mau mencoba silahkan, buat tangan kalian kotor, dapet galatnya, dan benarkan sendiri.

Pertama, yang perlu kalian lakukan adalah memasang dahulu docker itu sendiri di Windows. Bisa diunduh disini. Kenapa harus memasang docker di Windows kalau mau dijalan di WSL? Karena docker daemon tidak bisa berjalan langsung di WSL. Oleh karena itu kita akan membuat ‘remote’ dari WSL ke Windows. Sederhananya, docker CLI dari WSL akan terhubung ke docker daemon melalui docker for Windows. Karena kita menghubungkan docker CLI ke docker for Windows, kita akan meng-expose daemon tanpa TLS. (Apakah ini aman?)

Well, it says “Use with Caution”. Kalian tetap mau mencoba? Sebenarnya tidak masalah dalam kasus ini. Mengapa? daemon hanya bound ke localhost aja dan node atau mesin lain dalam local networks tidak bisa mengaksesnya [1]. (It is safe, ya? Safe kok safe, InsyaAllah)

Credits to Nick Janetakis [1]

Berikutnya menginstal docker di WSL. Masih ingatkan cara mengakses WSL dari Windows? Kalian bisa menggunakan Command Prompt atau Hyper atau terminal favorit kalian dan ketik WSL. Maka otomatis kalian akan masuk ke mode intraktif dari WSL. Selebihnya untuk menginstal docker di WSL sama seperti di Linux. Ini adalah command yang saya ambil dari dokumentasinya docker, khususnya ubuntu karena WSL yang saya gunakan adalah distro Ubuntu [2].

Perbarui indeks dari apt package kalian terlebih dahulu

$ sudo apt-get update

Package berikut digunakan agar apt bisa menggunakan repo yang diambil dari HTTPS

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Sumber: Pribadi

Berikutnya menambahkan official GPG key milik docker

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Kemudian verifikasi key-nya memiliki fingerprint berikut 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 dengan menggunakan perintah berikut

$ sudo apt-key fingerprint 0EBFCD88

Salian akan mendapatkan hasil yang kurang lebih seperti ini

Sumber: pribadi

Saya merekomendasikan kalian untuk menggunakan versi yang stabil. Berikut adalah versi yang digunakan untuk arsitektur x86_64/amd64

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Kalian bisa mengganti arsitekturnya dengan armhf , arm64 ,ppc64e1 ,s390x . Semua tergantung dengan aritektur dari mesin yang kalian gunakan.

Selanjutnya pasang versi terakhir dari Docker CE dan Containerd atau kalian bisa juga memilih versi yang kalian inginkan

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

Untuk versi yang lebih spesifik kalian bisa memilih dari daftar yang diberikan dari perintah ini.

$ apt-cache madison docker-ce

Tambahkan user kalian untuk mengakses docker CLI di WSL tanpa akses dari root

$ sudo usermod -aG docker $USER

atau juga bisa dengan

$ sudo adduser $USER docker

Terakhir silahkan kalian mencoba menjalankan perintah berikut untuk memastika kalau docker di WSL sudah berjalan dengan baik. Sebelumnya, buka di Command Prompt baru

$ docker run hello-world
Punya saya

Kalau kalian mendapat hasil yang sama, selamat kalian bisa menggunakan fungsi docker dengan baik. Saya sarankan untuk mencoa dahulu dari dokumentasinya docker, khususnya bagian Get Started ini atau mencoba dari tulisan dosen saya [3].

Sekian tulisan saya untuk rubik #NulisGik kali ini. Saran dan masukan menjadi bahan yang penting banget untuk saya sebagai kelangsungan rubik ini agar isinya tidak ngawur. Dan sekali lagi untuk kalian yang bisa pakai npiperelay dari WSL saya mohon banget membuat tutorial biar saya juga bisa mencoba.

Terima kasih!

Salam (11/04/2019)

Acknowledgement:
Terima kasih kepada rekan dari Digital Talent, mas Tegar dan mas Reza untuk proofreadingnya. Jikalau ada kesalahan ada istilah yang salah, itu murni dari saya. Selebihnya saya mencoba menggunakan kalimat yang sopan sehingga ramah untuk banyak kalangan.

Sumber:

[1] https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly

[2] https://docs.docker.com/install/linux/docker-ce/ubuntu/

[3] https://medium.com/@dataq/python-keras-nltk-dan-pandas-dalam-docker-container-40a442511819

--

--

Harits Abdurrohman
otakbeku

Interest with machine learning, image processing, computer vision or data science