Modul Pembelajaran Containerization

Pelajari konsep secara terstruktur dari dasar hingga penggunaan Podman.

Kemajuan Belajar Anda 0% Progress
Modul 7.1

What is a Container?

Sebuah Container adalah unit standar perangkat lunak yang mengemas kode aplikasi beserta seluruh dependensi (library, konfigurasi, dan biner) yang dibutuhkannya agar dapat berjalan secara mandiri, cepat, dan handal di lingkungan komputasi manapun.

Fungsi & Keuntungan Utama Container:

  • Isolasi Proses: Mencegah bentrokan versi library antar aplikasi di server yang sama.
  • Portabilitas Bebas Masalah: Aplikasi berjalan seragam di Windows, Linux, maupun Cloud.
  • Efisiensi Tinggi: Menggunakan kembali OS Host kernel tanpa beban overhead virtualisasi penuh.
📌 Analogi Sederhana: Container mirip dengan kontainer pengiriman di kapal laut. Tidak peduli apa isi di dalamnya (pisang, pakaian, atau elektronik), ukuran dan cara penanganannya selalu standar.
What is container illustration
Modul 7.2

Containerization Concept

Containerization adalah proses pengemasan aplikasi beserta pustaka dan runtime-nya ke dalam satu kesatuan terisolasi. Alur kerja containerization terdiri dari beberapa tahap utama:

1. 💻
Application Kode sumber & konfigurasi
2. 🧱
Container Image Blueprint template read-only
3. ⚙️
Container Runtime Podman / OCI Engine
4. 🚀
Running Container Aplikasi aktif terisolasi
Modul 7.3

Container vs Virtual Machine

Meskipun sama-sama digunakan untuk isolasi aplikasi, Container dan Virtual Machine (VM) bekerja pada tingkatan arsitektur yang sangat berbeda.

Fitur / Karakteristik Container Virtual Machine (VM)
Operating System Berbagi OS Host Kernel (Shared Kernel) Setiap VM membawa Full Guest OS
Ukuran File (Size) Sangat Kecil (Megabytes) Besar (Gigabytes)
Waktu Booting (Startup) Instan / Hitungan Detik Lambat (Hitungan Menit)
Konsumsi Resource Sangat Efisien (Minimal RAM & CPU) Tinggi (Membutuhkan RAM & CPU Dedicated)
Tingkat Isolasi Process-level Isolation (Kernel Namespaces) Virtual Machine Level (Hypervisor)
Portabilitas Sangat Tinggi di Seluruh Platform Tergantung Format Hypervisor
Container vs VM comparison diagram
Kapan Menggunakan Container vs VM?

Container ideal untuk arsitektur microservices, aplikasi web, dan pengujian cepat di mana efisiensi dan kecepatan adalah prioritas. Sebaliknya, VM cocok jika Anda membutuhkan isolasi tingkat keamanan hardware penuh atau perlu menjalankan OS yang berbeda dari OS Host.

Modul 7.4

Container Image

Container Image adalah file cetak biru (blueprint) atau template yang bersifat read-only dan berisi semua instruksi yang diperlukan untuk membuat sebuah instance Container yang siap dijalankan.

Karakteristik Container Image:
  • Immutable: Image tidak dapat diubah setelah dibuat. Jika ada perbaikan kode, buat image versi baru.
  • Layered Architecture: Image disusun atas beberapa layer (lapisan instruksi) yang dapat di-cache secara efisien.
  • Reusable: Satu image dapat digunakan untuk membuat puluhan container aktif secara bersamaan.
Hubungan Image & Container:

Jika Container Image dianalogikan sebagai cetakan kue (mould) atau kelas (class dalam OOP), maka Container adalah kue yang sudah jadi (object instance).

Container Image → [podman run] → Active Container
Modul 7.5

Containerfile (Instruction Recipe)

Containerfile (atau dikenal juga sebagai Dockerfile) adalah file teks tanpa ekstensi yang berisi urutan instruksi perintah untuk membangun sebuah Container Image secara otomatis.

"Containerfile is like a step-by-step cooking recipe for software applications."
Contoh Sederhana Containerfile Python:
Containerfile
FROM python:3.12-slim

WORKDIR /app

COPY app.py .

CMD ["python", "app.py"]
Penjelasan Instruksi Utama:
Instruksi Fungsi Utama
FROM Menentukan base image awal (misal: Python, Node, Alpine Linux).
WORKDIR Menentukan direktori kerja utama di dalam container.
COPY Menyalin file/folder dari komputer host ke dalam container image.
CMD Menentukan perintah utama saat container pertama kali dijalankan.
Modul 7.6

Podman (Pod Manager)

Podman adalah container engine open-source modern yang dirancang untuk menemukan, membuat, menjalankan, dan mengelola container OCI (Open Container Initiative).

Keunggulan Utama Podman:
  • Daemonless: Tidak membutuhkan service background daemon utama yang selalu berjalan.
  • Rootless Security: Dapat dijalankan oleh pengguna biasa tanpa hak akses root/sudo, sehingga jauh lebih aman.
  • Docker CLI Compatible: Perintah Podman identik dengan Docker. Anda bisa membuat alias alias docker=podman.
Contoh Ringkasan Command Podman:
podman pull nginx
podman run -d -p 8080:80 nginx
podman ps
podman stop nginx

Jelajahi detail seluruh perintah interaktif di halaman Command Explorer →