[TUTORIAL] Apa itu Docker? Inilah cara menggunakan Docker Container (+ Menghubungkan ke WSL)

Assalamu‘alaikum wr. wb.

Hello gais! Dalam Pengembangan Perangkat Lunak dengan Efisien itu sangat penting. Apalagi untuk dapat dilakukan di berbagai Lingkungan Pengembangan sekaligus. Untuk itulah diperlukan yang namanya Docker. Kali ini, kita akan memberikan Tutorial menggunakan Docker.

Sumber Artikel Utama : Docs.Docker.comNiagahoster.co.id (Blog)Intellipaat.comDataset.com, dan Dev.to (@noejon)


PENGERTIAN (TENTANG CONTAINER)

Sumber : Docker.com

A. Pengertian Container dan Docker

Sebuah container adalah lingkungan terisolasi untuk kode Anda. Ini berarti bahwa sebuah container tidak memiliki pengetahuan tentang sistem operasi Anda atau file Anda. Container berjalan di lingkungan yang disediakan oleh Docker Desktop. Oleh karena itu, sebuah container biasanya memiliki segala yang dibutuhkan oleh kode Anda untuk berjalan, termasuk sistem operasi dasar. Anda dapat menggunakan Docker Desktop untuk mengelola dan menjelajahi container Anda.

Docker adalah sebuah aplikasi yang digunakan untuk menggabungkan berbagai file perangkat lunak dan komponennya ke dalam wadah (container), sehingga mempermudah proses pengembangan perangkat lunak.

Dalam pengembangan aplikasi, para pengembang memerlukan virtualisasi di server agar aplikasi dapat berjalan di berbagai platform dengan konfigurasi hardware yang berbeda.

Namun, masalahnya adalah ketika menggunakan virtualisasi, Anda harus menyiapkan satu sistem operasi secara penuh. Jika Anda membutuhkan beberapa virtualisasi, server akan membutuhkan sumber daya yang besar.

Container dapat digunakan sebagai alternatif untuk virtualisasi, sehingga Anda tidak perlu menyiapkan seluruh sistem operasi. Dengan menggunakan container, ukuran file menjadi lebih kecil dibandingkan dengan virtualisasi konvensional yang biasanya digunakan.

B. Fungsi Docker

Berikut adalah enam fungsi Docker yang memberikan manfaat dalam pengembangan aplikasi Anda :

1. Mempermudah Pengembangan Aplikasi

Docker menyederhanakan pekerjaan pengembang dengan menggunakan sumber daya yang efisien dan menyediakan lingkungan yang stabil untuk dijalankan di berbagai perangkat, mulai dari server cloud hingga komputer pribadi.

2. Menyederhanakan Konfigurasi

Docker tidak memerlukan konfigurasi tambahan sehingga pengembang dapat menjalankan aplikasi yang diuji tanpa masalah.

3. Memudahkan Pengembangan Kode Pipeline

Pengembang dapat menggunakan Docker container sebagai lingkungan pengujian untuk kode pipeline dan alat yang diperlukan dengan lebih mudah.

4. Digunakan untuk Debugging

Docker menyediakan fitur debug yang memungkinkan pengembang mengatasi masalah pada aplikasi tanpa meninggalkan lingkungan Docker.

5. Mendukung Multitenancy

Docker cocok untuk membuat aplikasi dengan struktur multitenancy seperti Software as a Service (SaaS). Anda dapat membuat beberapa lingkungan yang terisolasi dan menjalankan objek aplikasi untuk setiap tenant.

6. Peningkatan Sumber Daya yang Cepat

Docker memungkinkan peningkatan sumber daya perangkat dengan cepat, menghasilkan durasi pengembangan perangkat lunak yang lebih singkat.

C. Istilah-istilah dalam Docker

Berikut adalah beberapa istilah yang perlu Anda pahami dalam penggunaan Docker :

  1. Docker Image : Sebuah kumpulan file yang mendukung aplikasi tertentu.
  2. Docker Container : Sebuah wadah yang mengemas dan menjalankan aplikasi. Wadah ini berisi kode, runtime, alat sistem, dan pengaturan. Container hanya dapat mengakses sumber daya yang telah ditentukan dalam Docker image.
  3. Docker Client : Tempat di mana pengguna dapat mengirimkan perintah seperti Docker build, Docker pull, dan Docker run ke Docker daemon.
  4. Docker Engine Rest API : Komponen yang digunakan untuk berinteraksi dengan Docker daemon. Komponen ini dapat diakses oleh klien melalui protokol HTTP.
  5. Docker Daemon : Proses pengelolaan Docker images, container, jaringan, dan volume penyimpanan. Docker daemon menerima permintaan dari Docker API dan memprosesnya.
  6. Docker Host : Komponen yang menyediakan lingkungan untuk menjalankan aplikasi. Docker host bertanggung jawab untuk menerima perintah yang diberikan oleh Docker client.
  7. Docker Registry : Wadah untuk menyimpan Docker image. Docker image akan bereaksi sesuai dengan perintah yang diberikan. Misalnya, saat diberi perintah docker push, Docker image akan diunggah atau dibagikan ke registry Docker Hub.
  8. Docker Hub : Layanan yang menyediakan tempat untuk menemukan dan berbagi Docker Image.

Setelah mengetahui berbagai istilah tersebut, saatnya mempelajari Docker dan cara menggunakannya.


TUTORIAL DOCKER

A. Persiapan Docker

Pertama, kita download Docker terlebih dahulu pada Website Docker di sini. Bagi pengguna Windows, bisa di Install di sini.

Kemudian, lakukan instalasi Docker yang telah kita Download tadi.

Tunggu saja sampai selesai untuk melakukan Unpacking Files.

Kemudian, klik Tombol "Close" jika sudah selesai.

Jika sudah, maka akan menuju ke tampilan utama pada Docker Desktop Main.


Jika WSL belum tersedia, artinya kamu harus melakukan Instalasi Kernel Linux terlebih dahulu.

Jika sudah, maka Login terlebih dahulu ke Situs Docker dengan cara mengeklik Tombol "Sign in" yang ada pada Aplikasi Docker.

Akan tetapi, jika belum mempunyai Akun maka daftarlah terlebih dahulu. Isilah Username, Email, dan Password Anda, kemudian klik Tombol "Sign up".

Kemudian, masukkan Alamat Email Anda dan klik "Continue". Dan akan diarahkan untuk ke Password, jika sudah selesai klik lagi pada Tombol "Continue".

Maka jika sudah, akan seperti ini :

Maka, Anda akan dialihkan ke Aplikasi Docker.

B. Memeriksa Docker dengan Command Prompt

1. Memeriksa Docker dengan CMD

Selanjutnya, kita harus membuka Command Prompt terlebih dahulu. Kemudian, ketilah Perintah berikut ini untuk memeriksa Versi Docker :

docker version

Dan jika ingin memeriksa Docker Image, ketilah Perintah di bawah ini :

docker images

Selanjutnya, jika ingin mencari MySQL dalam Docker, bisa menulis Perintah di bawah ini :

docker search mysql

Diatas hanyalah untuk mengetahui Jumlah Docker Image yang menggunakan MySQL. Bahkan, jika kita ingin mencari NodeJS, juga bisa seperti Perintah di atas.

docker search nodejs

2. Mengatur WSL menggunakan CMD

Sebelum memeriksa dan mengatur WSL menggunakan Command Prompt, Carilah "Features" pada Search.

Kemudian, centanglah pada opsi "Windows Subsystem for Linux" dan juga Hyper-V jika ada. Setelah itu, klik "OK".


Selanjutnya, bukalah CMD dan jalankan sebagai Administrator. Kemudian, ketiklah :

wsl --status

Bila perlu, ketiklah ini untuk mengubah Versi Default dari WSL :

wsl --set-default-version 1


3. Menyalakan Windows Subsystem for Linux (WSL)

Kemudian, kita akan menyalakan WSL terlebih dahulu sebelum membuat Docker File dan Docker Image. Untuk mempelajarinya, silakan lihat pada Laman Situs Microsoft di sini. Untuk menjalankannya, buka PowerShell atau Command Prompt dan jalankan sebagai Administrator. Kemudian, ketiklah :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Sebelum menginstal WSL 2, Anda harus mengaktifkan fitur opsional Platform Virtual Machine. Mesin Anda memerlukan kemampuan Virtualisasi untuk menggunakan fitur ini. Ketiklah Perintah ini :

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Buka PowerShell atau Command Prompt dan jalankan perintah ini untuk mengatur WSL 2 sebagai versi default saat menginstal distribusi Linux baru (Sama seperti perintah di atas) :

wsl --set-default-version 2

Jika sudah, maka bukalah Microsoft Store untuk menginstal Linux Ubuntu Versi 22.04.

Kemudian, akan diarahkan ke CMD untuk membuat Username dan Password untuk Ububtu yang telah kita Install tadi.

Jika sudah, maka seperti ini :

C. Memeriksa WSL dan Integrasi ke Docker

Sumber : Docs.Docker.com

Selanjutnya, kita buka lagi WSL di Windows Terminal.

Kemudian, klik "Panah Bawah (⮟) --> Ubuntu 22.04 LTS" untuk membuka WSL Linux Ubuntu.

Kemudian, ketiklah Perintah di bawah ini (Untuk memeriksa Docker yang berjalan) :

wsl.exe -l -v

Sebelum itu, marilah kita ketik Perintah berikut ini untuk menjalankan Command Linux di WSL :

sudo apt update && sudo apt upgrade

Selanjutnya, buka Aplikasi Docker Desktop dan klik pada Ikon Settings. Kemudian, klik pada "Settings --> Resources --> WSL Integration".

Lalu, aktifkan pada "Ubuntu" dan klik Tombol "Apply & Restart".

Misalnya, untuk mengatur Ubuntu sebagai distro WSL default Anda, jalankan :

wsl --set-default ubuntu

Jika tidak bisa, boleh tambahkan Versi dari Ubuntu. Kalau punya saya memakai Ubuntu Versi 22.04, maka tambahkan :

wsl --set-default ubuntu-22.04

D. Integrasi Docker Image dengan WSL

Sumber : Docs.Docker.com

Jika sudah, maka buka Aplikasi Docker dan periksa sekali lagi pada Dashboard Docker untuk Aplikasi yang berjalan. Gambar berikut ini adalah contoh dari Docker Image yang telah berjalan.

Dan inilah Keterangan bahwa Docker Image untuk Ubuntu telah berjalan :

1. Membuat Direktori File di Ubuntu WSL

Untuk memulai Proyek baru di dalam Docker Container, ketiklah Perintah berikut ini :

mkdir node
code node/

Maka akan membuka otomatis ke Visual Studio Code (VS Code) :

Kemudian, Carilah terlebih dahulu "wsl" untuk menginstal Ekstensi WSL di VS Code, kemudian klik "Install".

2. Instalasi Linux Files (zsh dan oh-my-zsh)

Selanjutnya, ketiklah Perintah ini untuk mengubah dari bash menjadi zsh :

sudo apt install zsh

Perintah zsh sekarang dapat diluncurkan hanya dengan mengetikkan zsh di terminal. File .zshrc perlu dibuat, dan kami dimintai pilihan. Dia kita pilih (0) karena file .zshrc akan diganti saat kita menginstal oh-my-zsh (dari GitHub).

Kami tidak ingin mengetik zsh setiap kali kami memulai aplikasi ubuntu, jadi hal berikutnya yang ingin kami ubah adalah shell default untuk menggunakan zsh. Untuk melakukannya, kami akan menggunakan perintah chsh sesuai contoh ini. Cukup jalankan :

chsh -s $(zsh yang mana)

Setelah ini selesai, kami akan mengubah tema zsh kita dan untuk melakukannya, kami akan memanfaatkan kekuatan oh-my-zsh. Perintah sederhana akan menginstalnya :

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

3. Development Tools (Git)

Selanjutnya, kita akan melakukan Instalasi Git di dalam Linux Ubuntu di WSL. Untuk menginstal Git, di terminal wsl, kami menjalankan :

sudo apt update && sudo apt upgrade
sudo apt install git

Langkah selanjutnya adalah mengatasi masalah lintas platform di mana Git terkadang mendeteksi perubahan file meskipun file tidak berubah. Ini karena Windows menggunakan CRLF untuk menunjukkan jeda baris dan Linux menggunakan LF. Untuk memperbaikinya, jalankan baris ini :

git config --global core.autocrlf input

Selanjutnya, kita Install terlebih dahulu WSL di dalam Visual Studio Code, dengan mengklik "Extension"

4. Membuat dan Menginstal Program Node.js di dalam WSL

Untuk menginstal node.js kita akan memanfaatkan nvm. Instalasi sekali lagi cukup lurus ke depan. Di terminal Ubuntu kita akan menjalankan :

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

Di atas, saya telah menginstal Node.js Versi 20 di dalam Ubuntu di WSL. Untuk melihat Versi lainnya dari Node.js dan juga Distribusi Linux lainnya, silakan lihat di sini (Github.com).

Selanjutnya, kita dapat inisialisasi sebagai proyek npm untuk membuat Proyek baru di dalam Ubuntu WSL :

npm init -y

Maka, langsung dibuatkan file package.json secara otomatis. Kemudian, jalankan perintah di bawah ini untuk menjalankan Express :

npm install express

Kemudian, masukkan Kode JavaScript berikut ini.

const express = require('express')

const app = express()

app.get('/', (req, res) => {
  res.send('<h1>Hello World!</h1>')
})

app.listen(3000)

Kemudian, jalankan dengan menggunakan Perintah berikut ini :

node index

Dan seperti inilah bentuk Website Sederhana menggunakan Node.js :

Dengan mengetikkan http://localhost:3000 untuk melihat dalam bentuk Website Sederhana.

E. Melakukan Compose dengan menggunakan Docker

Terakhir, kita membuat File Docker Compose. Tapi sebelum kita membuat File Docker Compose, marilah kita Install terlebih dahulu Ekstensi Docker di VS Code. Carilah "docker" kemudian klik "Install".

Setelah itu, buatlah Program ke dalam File Dockerfile untuk membuat File Node.js tersebut menjadi Docker File.

FROM node:20

WORKDIR /home/inzaghi17/node

# Install app dependencies
COPY package*.json ./
RUN npm install

# Bundle app source
COPY . .

CMD ["npm", "start"]

Kemudian, kita juga buat File .dockerignore, yang merupakan File Konfigurasi yang menjelaskan file dan direktori yang ingin Anda kecualikan saat membuat Docker Image.

node_modules

Maka, akan seperti ini untuk lebih jelasnya :

Selanjutnya, kita dapat membangun Docker Image dengan melakukan ini :

docker build —t express

Terakhir, kita tambahkan Flag -d untuk meneruskan port dari Docker ke Sistem Operasi.

docker run -p 3000:3000 express


Keterangan :

Saat kita membuka Terminal WSL Ubuntu, maka akan berbentuk Terminal Zsh. Jika ingin mengubahnya menjadi Terminal Ubuntu, ketiklah :

exec bash

Dan, jika ingin mengembalikan kembali ke Zsh, ketiklah :

exec zsh

[Sumber : Askubuntu.com (Stack Exchange) dan Stackoverflow.com (Questions - 10341271)]


VIDEO

Untuk melihat Tutorial Docker secara lengkap, silakan lihat pada Video-video YouTube di bawah ini.


Itulah Tutorial Cara menggunakan Docker. Mohon maaf apabila ada kesalahan apapun. 

Terima Kasih 😄😘👌👍 :)

Wassalamu‘alaikum wr. wb.

Post a Comment

Previous Post Next Post