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.com, Niagahoster.co.id (Blog), Intellipaat.com, Dataset.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 :
- Docker Image : Sebuah kumpulan file yang mendukung aplikasi tertentu.
- 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.
- Docker Client : Tempat di mana pengguna dapat mengirimkan perintah seperti Docker build, Docker pull, dan Docker run ke Docker daemon.
- Docker Engine Rest API : Komponen yang digunakan untuk berinteraksi dengan Docker daemon. Komponen ini dapat diakses oleh klien melalui protokol HTTP.
- Docker Daemon : Proses pengelolaan Docker images, container, jaringan, dan volume penyimpanan. Docker daemon menerima permintaan dari Docker API dan memprosesnya.
- Docker Host : Komponen yang menyediakan lingkungan untuk menjalankan aplikasi. Docker host bertanggung jawab untuk menerima perintah yang diberikan oleh Docker client.
- 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.
- 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).
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:20WORKDIR /home/inzaghi17/node# Install app dependenciesCOPY package*.json ./RUN npm install# Bundle app sourceCOPY . .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 :
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.