Docker
Docker adalah software open-source yang digunakan untuk meluncurkan (deploy) aplikasi di dalam container virtual. Dengan container virtual ini (containerization), aplikasi bisa dijalankan secara terisolasi di environment yang kompleks sehingga tidak menimbulkan masalah pada environment lainnya.
Masih bingung tentang apa itu docker? Jadi, mudahnya begini: Docker adalah platform container atau lingkup isolasi, yang nantinya container ini bisa digunakan untuk menjalankan suatu aplikasi atau layanan dengan lancar di sistem yang berbeda.
Referensi: Apa Itu Docker? (opens in a new tab)
Instalasi
Setup Docker Desktop
Kita perlu install Docker Desktop, jika kamu belum install bisa install terlebih dahulu, kunjungi websitenya seperti gambar di bawah.
Referensi: Docker Desktop (opens in a new tab)
Instal Ekstensi
Instal ekstensi Visual Studio Code Docker
, untuk mempermudah kamu dalam menggunakan Docker.
Setup Docker CLI/Engine
Setup ini dilakukan bagi pengguna Windows yang telah menginstal WSL versi Ubuntu.
Menginstal menggunakan repositori apt
Sebelum kamu menginstal Docker Engine untuk pertama kalinya pada mesin hos baru, kamu perlu menyiapkan repositori Docker. Setelah itu, kamu dapat menginstal dan memperbarui Docker dari repositori.
Buka terminal Ubuntu kamu, kemudian ikuti langkah-langkah di bawah ini.
- Siapkan repositori
apt
Docker.
# Tambahkan GPG key resmi Docker:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Tambahkan repositori ke sumber Apt:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
- Instal package Docker.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Verifikasi bahwa instalasi Docker Engine telah berhasil dengan menjalankan
hello-world
image.
sudo docker run hello-world
- Verifikasi untuk cek versi dari Docker Engine/CLI.
docker version
# atau
sudo docker version
Referensi: Install Docker Engine on Ubuntu - Install using the apt repository (opens in a new tab)
Docker Images
Docker Images adalah template yang digunakan untuk membuat container Docker. Image ini berisi semua yang dibutuhkan untuk menjalankan aplikasi, termasuk kode, dependensi, alat, pustaka, dan konfigurasi.
Membuat Docker Images
Untuk membuat Docker images, kamu perlu menulis Dockerfile
. Contoh sederhana Dockerfile:
# Choose Base Image
FROM node:alpine
# Define working directory
WORKDIR /usr/src/app
# Copy package.json to workdir
COPY ./package.json ./
# Install Dependencies
RUN npm install
# Copy app files to workdir
COPY ./ ./
# Run the app
CMD ["npm", "run", "start"]
Untuk membangun image dari Dockerfile ini, gunakan perintah:
docker build -t nama-image-kamu .
Melihat Daftar Docker Images
docker images
Docker Container
Docker Container adalah instance yang berjalan dari Docker image. Container ini dapat dianggap sebagai sebuah lingkungan runtime terisolasi.
Menjalankan Container
Untuk menjalankan container dari image yang telah dibuat:
docker run -d -p 3000:3000 nama-image-kamu
Penjelasan perintah:
- -d membuat container berjalan di latar belakang (detached mode).
- -p 3000:3000 memetakan port 3000 di host ke port 3000 di container.
Melihat Daftar Container yang Berjalan
docker ps
Selanjutnya, jika kamu ingin melihat semua container (aktif dan tidak aktif), gunakan perintah -a
:
docker ps -a
Menghentikan Container
docker stop [id atau nama-image-kamu]
Docker Volumes
Docker Volumes adalah mekanisme untuk menyimpan data yang persisten di luar container. Volume ini dapat digunakan untuk berbagi data antara host dan container atau antara beberapa container.
Membuat dan Menggunakan Volume
Untuk membuat volume:
docker volume create nama-volume
Untuk menjalankan container dengan volume:
docker run -d -p 3000:3000 -v nama-volume:/path/di/dalam/container nama-image-kamu
Docker Compose
Docker Compose adalah alat untuk mendefinisikan dan menjalankan aplikasi Docker multi-container. Dengan menggunakan file docker-compose.yml
, kamu dapat mengatur layanan, jaringan, dan volume untuk aplikasi kamu.
Contoh docker-compose.yml
Contoh file docker-compose.yml
aplikasi Backend menggunakan Express.js dan MongoDB:
version: "3.8"
services:
expressjs:
build: .
ports:
- "8000:8000"
depends_on:
- mongodb
mongodb:
image: mongo
ports:
- "27017:27017"
Jika ditambahkan menggunakan Docker Volumes pada file docker-compose.yml
, contohnya sebagai berikut:
version: "3.8"
services:
expressjs:
build: .
ports:
- "8000:8000"
depends_on:
- mongodb
mongodb:
image: mongo
ports:
- "27017:27017"
volumes:
- mongovolume:/data/db
volumes:
mongovolume:
Membuat dan Menggunakan Volume
Untuk membuat volume:
docker volume create nama-volume
Untuk menjalankan container dengan volume:
docker run -d --name nama-container-kamu -v nama-volume:/path/in/container IMAGE
Menjalankan Docker Compose
Untuk menjalankan aplikasi menggunakan Docker Compose:
docker-compose up
Perintah ini akan membangun image jika diperlukan dan menjalankan container sesuai dengan definisi di docker-compose.yml
.