Mengelola virtualisasi dan container sebagai sysadmin: hypervisor KVM/Proxmox/ESXi, manajemen VM, dan dasar containers Docker, lalu praktik mengelola VM dan container di lab server Linux.

Sejak episode 0 kalian sebenarnya sudah memakai virtualisasi — VM kalian berjalan di atas hypervisor. Episode 8 ini mengubah perspektif: kalian kini bukan lagi user yang memakai VM, melainkan sysadmin yang mengelola VM dan container untuk orang lain.
Virtualisasi adalah fondasi modern: data center menjalankan puluhan VM di satu server fisik. Container melangkah lebih jauh — berbagi kernel, tetapi mengisolasi aplikasi. Memahami keduanya adalah pembeda sysadmin 2026.
| Aspek | VM | Container |
|---|---|---|
| Isolasi | Penuh (OS sendiri) | Proses-level, berbagi kernel host |
| Ukuran boot | Menit (full OS) | Detik |
| Resource | Alokasi virtual (vCPU/RAM tetap) | Ringan, shared kernel |
| Keamanan | Isolasi kuat | Bergantung isolasi kernel |
| Use case | Server legacy, OS berbeda | Microservice, portabilitas |
Tidak ada yang "menang" — keduanya hidup berdampingan. Banyak infrastruktur modern memakai VM sebagai host, dan container di dalamnya.
Hypervisor adalah lapisan yang menjalankan VM. Tiga nama yang wajib kalian kenal:
| Hypervisor | Tipe | Keterangan |
|---|---|---|
| KVM | Bare-metal (di Linux) | Kernel module Linux; backbone cloud publik |
| Proxmox VE | Bare-metal distro | KVM + LXC + web UI; favorit homelab |
| VMware ESXi | Bare-metal proprietary | Dominan di enterprise tradisional |
KVM adalah pilihan paling mendasar untuk sysadmin Linux. Di Ubuntu, install dan uji:
grep -c -E "vmx|svm" /proc/cpuinfo
sudo apt install -y qemu-kvm libvirt-daemon-system virtinst
sudo virsh net-listvirsh adalah CLI manajemen libvirt — cara sysadmin mengelola VM tanpa GUI.
sudo virt-install --name web01 --ram 1024 --vcpus 1 \
--disk path=/var/lib/libvirt/images/web01.qcow2,size=10 \
--os-variant ubuntu24.04 --network default --nographics
sudo virsh list --all
sudo virsh start web01
sudo virsh snapshot-create-as web01 before-upgradesnapshot-create-as adalah penyelamat: sebelum perubahan berisiko, buat snapshot dan kalian bisa kembali kapan saja.
Docker mengemas aplikasi + semua dependensinya menjadi image, lalu menjalankannya sebagai container yang terisolasi. Alur inti:
Perintah yang harus kalian hafal di luar kepala:
docker pull nginx:stable-alpine
docker run -d --name web -p 8080:80 nginx:stable-alpine
docker ps
docker logs web
docker exec -it web bash
docker stop web && docker rm web| Istilah | Analogi | Sifat |
|---|---|---|
| Image | Blueprint / resep | Immutable (tidak berubah) |
| Container | Rumah yang dibangun dari blueprint | Sementara, bisa dihapus & dibangun ulang |
Prinsip terpenting: container itu ephemeral. Data yang perlu bertahan hidup di volume:
docker volume create webdata
docker run -d --name web -p 8080:80 -v webdata:/usr/share/nginx/html nginx:stable-alpineTanpa volume, semua data hilang saat container dihapus — kesalahan klasik yang pernah dialami semua orang.
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]docker build -t my-app:1.0.0 .
docker run -d -p 3000:3000 --name my-app my-app:1.0.0Important
Container tidak membuat backup, security, atau log management hilang — ia justru menuntut ketiganya. Data di container tanpa volume = data hilang; image yang tidak di-scan = rentan; log container yang tidak dipusatkan = buta. Semua topik ini akan kita isi di episode 9, 11, 18, dan 19.
Tip
Aturan praktis memilih: butuh OS penuh dan isolasi kuat (server lama, aplikasi yang tidak cocok container) → VM. Butuh banyak instance ringan dan deployment cepat → container. Ketika ragu, mulai dari VM; naik ke container saat workload-nya memang sudah siap.
Latihan terpadu di lab kalian:
# VM: buat, jalankan, snapshot
sudo virt-install --name labvm --memory 1024 --vcpus 1 \
--disk path=/var/lib/libvirt/images/labvm.qcow2,size=8 \
--os-variant ubuntu24.04 --network default --import --noautoconsole
# Container: jalankan nginx dengan volume
docker volume create labdata
docker run -d --name labweb -p 8080:80 -v labdata:/usr/share/nginx/html nginx:stable-alpine
# Verifikasi keduanya hidup
sudo virsh list
docker ps
curl -sS -o /dev/null -w "%{http_code}\n" http://localhost:8080Jika virsh list menampilkan VM dan docker ps menampilkan container, dan curl mencetak 200, kedua dunia — virtualisasi dan container — sudah berfungsi di lab kalian.
Inti yang harus dibawa pulang dari episode 8:
Di episode 9 selanjutnya kita akan membahas Backup & Restore — strategi 3-2-1, tools Restic/Borg/Veeam, dan yang paling sering dilupakan: testing restore, dengan praktik backup dan drill restore di lab. Ini mungkin episode paling penting di seluruh series — pastikan tetap fokus!