• Indonesian
  • English
  • Setup Docker di VPS: Panduan Lengkap Step-by-Step 2026

    Kecepatan:
    ⏱ 12 min read

    Cara Setup Docker Container di VPS Linux: Panduan Lengkap dari Nol sampai Production

    Difficulty: Beginner
    Last Updated: Agustus 2026
    Tested On: Ubuntu 24.04 LTS, Rocky Linux 9, Docker Engine 27.x, Docker Compose v2

    Gila sih, aku baru aja kelar setup Docker container di VPS baru kemarin sore, dan jujur, aku gak nyangka semudah ini. Dulu pas aku masih nulis deploy script manual buat tiap aplikasi di tiap server, ribetnya minta ampun — bayangin harus update config di lima server satu-satu. Nah sekarang, tinggal pull image, jalan, kelar. Mau tahu carane? Yuk baca sampai habis, aku pandu dari nol banget, sampai nanti container pertama kamu jalan mulus dan jalan terus. Gas!

    Bayangin setup Docker itu kayak pindahan rumah pakai peti kemas. Barang kamu udah dikemas rapih di dalam peti, lengkap sama semua yang dibutuhin, tinggal diangkut truk, terus dibongkar di rumah baru. Gak perlu bongkar semua kardus terus nyusun ulang dari nol. Nah, itu yang Docker lakuin ke aplikasi kamu. Aplikasi dibungkus sama semua dependencies-nya, jadi mau dipindah ke VPS mana pun, hasilnya persis sama. Hilang deh drama paling klasik di dunia sysadmin: kok jalan di laptop developer tapi error di server?

    Oke, ngomongin kenapa banyak orang akhirnya mutusin pakai Docker container di VPS mereka. Masalah paling umum yang aku temuin dari temen-temen yang baru mulai: aplikasi lancar jaya di mesin development, tapi pas dideploy ke VPS production tiba-tiba error di mana-mana. Versi PHP beda, library gak lengkap, extension gak keinstall, permission folder salah — pokoknya satu drama panjang. Waktu yang harusnya dipake buat bikin fitur baru malah abis buat debug hal-hal kecil yang sebenarnya gampang banget dicegah. Dan kalau kamu manage beberapa VPS sekaligus — satu buat staging, satu buat production, satu lagi buat monitoring — masalah konsistensi ini makin kelihatan jelas. Tiap server setting-nya beda-beda, tiap deploy hasilnya gak bisa diprediksi, dan kamu gak pernah bisa yakin aplikasi yang jalan di server A bakal jalan mulus juga di server B.

    Terus ada juga yang namanya dependency hell. Cobain deploy aplikasi Python yang butuh 30-an pip package dengan versi tertentu, terus di VPS yang sama kamu juga jalanin aplikasi PHP yang butuh versi library sendiri. Kemungkinan besar bakal tabrakan. Dan tabrakannya bukan cuma bikin error doang, kadang bisa bikin satu server jadi gak stabil sama sekali. Nah, lha ini yang bikin makin banyak orang bilang: udah, pindah ke Docker aja. Aku ngerti banget perasaan itu, soalnya aku juga pernah ngalamin sendiri.

    Dari situ Docker masuk, dan jawabannya jelas banget. Tiap aplikasi dikurung di container sendiri — lengkap sama OS-nya, dependency-nya, konfigurasinya. Mau jalanin dua aplikasi yang butuh versi PHP beda? Gas aja, tinggal bikin dua container, gak akan bentrok. Konsep kunci yang wajib kamu pegang: isolation. Semua yang dibutuhin buat menjalankan satu aplikasi ada di dalam container itu, dan container-container itu semua jalan di atas Docker engine yang sama di VPS kamu. Keuntungan lain yang gak kalah penting: proses deploy jadi konsisten. Yang kamu uji di lokal, itu juga yang jalan di production. Nggih, ini game changer banget buat workflow kamu. Oh ya, soal update juga — mau naik versi library tinggal rebuild image, bukan upgrade manual di server. Balik ke topik utama ya.

    Kenapa Setup Docker di VPS Bukan Sekadar Tren

    Sebenernya bukan cuma ngikutin tren doang, ada alasan teknis yang masuk akal banget kenapa setup Docker container di VPS jadi pilihan standar di industri sekarang:

    • Isolasi total: satu container rusak atau crash, container lain gak ikut-ikutan down.
    • Deploy konsisten: image yang sama jalan identik di laptop, staging, sama production.
    • Rollback gampang: salah versi? tinggal jalankan image versi lama, selesai.
    • Resource efisien: jauh lebih ringan daripada virtual machine karena sharing kernel.
    • Scale horizontal: mau nambah instance tinggal scale, gak perlu setup server baru manual.

    Yang terakhir itu penting buat kamu yang mau develop workflow server yang proper. Kalau kamu masih belum kenal konsep migrasi VPS KVM zero-downtime, kebiasaan deploy yang konsisten dari Docker ini bakal banget membantu pas kamu pindah-pindah server tanpa downtime.

    Yang Perlu Disiapkan Sebelum Setup Docker di VPS

    • VPS dengan minimal 1GB RAM (2GB lebih nyaman) — buat aplikasi ringan 1GB cukup.
    • OS Linux 64-bit: Ubuntu 22.04/24.04, Debian 12, atau Rocky Linux/AlmaLinux 9.
    • Akses root atau user dengan sudo.
    • IP publik VPS kamu — buat test akses container dari luar.

    Kalau VPS kamu masih polos dan belum di-hardening, aku saranin baca dulu panduan hardening SSH VPS biar dari awal aman. Login via SSH jangan pake root langsung kalau bisa.

    Cara Setup Docker Container di VPS — Step by Step

    1. Update Sistem Operasi Dulu

    Sebelum install apa-apa, pastikan sistem kamu up to date. Ini penting biar gak ketemu error aneh pas install package:

    sudo apt update && sudo apt upgrade -y
    

    Buat Rocky Linux / AlmaLinux / CentOS pakai:

    sudo dnf update -y
    

    Setelah update selesai, reboot kalau ada kernel baru: sudo reboot. Lha, yang sering dilewatin ini sih — gak di-reboot terus kernel lama. Bukan hal fatal buat Docker, tapi fresh state itu nikmat, apalagi mau dipake jangka panjang.

    2. Install Docker Engine

    Cara paling gampang dan paling aman: pakai repo resmi dari Docker. Jangan install dari repo distro (kadang telat versinya) apalagi asal curl | sh dari situs gak jelas. Ubuntu/Debian, jalankan berurutan:

    sudo apt install -y 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
    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
    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    Buat Rocky/Alma, pakai dnf:

    sudo dnf -y install dnf-plugins-core
    sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    sudo systemctl enable --now docker
    

    Catatan: paket docker-ce-cli, containerd.io, docker-buildx-plugin, sama docker-compose-plugin itu bukan pelengkap doang, itu bagian dari stack Docker yang harus ada. Kalau cuma install docker-ce doang, beberapa fitur bakal gak jalan.

    3. Tambah User Kamu ke Grup Docker

    Secara default, perintah docker butuh root. Supaya kamu bisa jalanin docker tanpa sudo terus-terusan, tambahin user ke grup docker:

    sudo usermod -aG docker $USER
    

    Terus logout lalu login lagi (atau jalanin newgrp docker) biar group-nya ke-load. Cek dengan groups — kalau ada docker di daftarnya, berarti udah masuk.

    Peringatan keamanan: user yang ada di grup docker punya akses penuh ke host — mereka bisa mount folder / dan jadi root di luar container. Jadi jangan asal nambahin user sembarangan ke grup ini, apalagi di server multi-user. Kalau cuma kamu satu-satunya admin, aman-aman aja.

    4. Verifikasi Instalasi

    Cek versi dan status service-nya dulu:

    docker --version
    docker compose version
    sudo systemctl status docker
    

    Expected output kira-kira begini:

    Docker version 27.4.1, build 9c5847f
    Docker Compose version v2.31.0
    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
         Active: active (running) since ...
    

    Kalau Active gak running, jalanin sudo systemctl start docker dulu, terus cek lagi. Biasanya masalahnya cuma itu doang.

    5. Jalankan Container Pertama Kamu

    Ini momen paling seru. Jalankan image hello-world buat test bahwa Docker benar-benar jalan:

    docker run hello-world
    

    Kalau berhasil, kamu bakal lihat output kurang lebih seperti ini:

    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    ...

    Mantep kan? Sekarang coba yang beneran berguna, jalanin Nginx di port 8080 biar gak nabrak port 80 kalau nanti ada Apache/Nginx di host:

    docker run -d --name nginx-test -p 8080:80 nginx:alpine
    

    Terus cek dari browser atau curl: curl http://IP_VPS:8080. Kalau keluar halaman welcome Nginx, berarti setup Docker container di VPS kamu udah sukses total. Langsung buka alamatnya, rasain sensasinya dulu. Aku masih inget pertama kali nemu halaman itu, senengnya setengah mati — soalnya dulu setup server manual tuh makan waktu setengah hari.

    cara setup docker container di vps ubuntu 24.04

    6. Install Docker Compose — Kelola Banyak Container

    Kalau aplikasi kamu butuh beberapa service sekaligus (app + database + redis misalnya), Docker Compose adalah jawabannya. Compose udah kepasang bareng docker-compose-plugin, jadi tinggal cek versinya:

    docker compose version
    

    Bikin direktori kerja dan file compose sederhana:

    mkdir -p ~/app/html && cd ~/app
    nano docker-compose.yml
    

    Isi file compose-nya dengan contoh seperti ini:

    services:
      web:
        image: nginx:alpine
        container_name: web-server
        restart: unless-stopped
        ports:
          - '8081:80'
        volumes:
          - ./html:/usr/share/nginx/html
    

    Jalankan dengan:

    docker compose up -d
    

    Mau tahu kenapa restart: unless-stopped itu penting? Karena itu yang bikin container kamu otomatis nyala lagi kalau VPS reboot. Kalau container crash, Docker bakal nyalain lagi otomatis — kecuali kamu sengaja stop manual. Ini penyelamat banget di production, dan bakal kamu rasakan pas lihat bagian berikut.

    7. Bikin Container Jalan Otomatis Saat VPS Reboot

    Container yang gak ada restart policy itu ibarat temen yang gak pernah balik kalau udah keluar rumah. Begitu VPS kamu reboot karena maintenance atau crash, container langsung mati permanen. Solusinya restart policy. Buat container yang udah jalan, tinggal update:

    docker update --restart unless-stopped nginx-test
    

    Buat yang baru dijalankan, tambahin flag di command run:

    docker run -d --restart unless-stopped --name app-web -p 8082:80 nginx:alpine
    

    Ada beberapa pilihan restart policy:

    Policy Perilaku Kapan Dipakai
    no Gak pernah restart otomatis Default, buat testing aja
    on-failure Restart kalau container exit dengan error Job sekali jalan
    always Selalu restart, termasuk pas daemon nyala Service yang harus selalu hidup
    unless-stopped Restart kecuali kamu stop manual Paling aman buat production

    Pastikan juga service docker-nya enable dari awal: sudo systemctl enable docker. Kalau belum, lakuin sekarang biar daemon-nya ikut nyala pas boot.

    restart policy docker biar container jalan otomatis saat vps reboot

    10 Command Docker yang Wajib Kamu Hafal

    Ini command-command yang paling sering aku pake tiap hari. Hapalin pelan-pelan, nanti juga kebawa sendiri:

    Command Fungsi
    docker ps Lihat container yang jalan
    docker ps -a Lihat semua container termasuk yang mati
    docker images Lihat daftar image di server
    docker pull nama-image Ambil image dari registry
    docker run -d -p 80:80 nama-image Jalankan container di background
    docker exec -it nama-container bash Masuk ke dalam container
    docker logs nama-container Lihat log container
    docker stop / start / restart Stop, start, restart container
    docker rm nama-container Hapus container (harus stop dulu)
    docker system df Cek penggunaan disk image dan container

    Troubleshooting Docker di VPS

    Gak semua mulus. Ini masalah yang paling sering muncul dan cara ngatasinnya:

    Gejala Penyebab Solusi
    Can’t connect to the Docker daemon User belum masuk grup docker, atau service mati Cek sudo systemctl status docker, terus sudo usermod -aG docker $USER + login ulang
    Port sudah dipakai Service lain nempel di port yang sama ss -tulpn buat cek siapa yang pegang port, ganti mapping port
    Container langsung exit App error pas startup, atau CMD-nya salah docker logs nama-container — biasanya di situ jawabannya
    Permission denied User bukan member grup docker Pastikan udah sudo usermod -aG docker $USER terus login ulang
    Container ke-kill tiba-tiba (OOM) RAM VPS abis, kernel kill proses Cek dmesg | tail, naikin RAM atau pasang memory limit per container
    Disk VPS penuh Image dan volume numpuk docker system df buat audit, terus prune yang gak dipakai
    WARNING — Hati-hati dengan docker system prune: kalau jalanin docker system prune -a, itu bakal hapus SEMUA image yang gak dipake container jalan. Backup dulu definisi image kamu (Dockerfile / compose file) sebelum prune. Kalau gak yakin, cukup docker container prune yang cuma hapus container berhenti.

    Kalau kamu masih bingung baca log dan mau tahu cara monitor resource VPS yang beneran, aku rekomendasiin baca panduan monitoring VPS dengan Netdata. Believe me, monitor itu penyelamat.

    FAQ

    Q: Beda Docker container sama virtual machine itu apa sih?

    VM bawa OS lengkap sendiri-sendiri (ikut kernel), jadi berat dan butuh resource besar. Container sharing kernel host, cuma bawa aplikasi + dependency, jadi jauh lebih ringan dan boot-nya cepet. Tapi karena sharing kernel, container gak bisa jalanin OS beda-beda — Linux container di Linux host, gitu juga sebaliknya.

    Q: Docker di VPS RAM 1GB kuat gak?

    Kuat, asal aplikasinya ringan dan kamu disiplin pasang memory limit. Nginx + MySQL kecil masih oke di 1GB, tapi jangan coba jalanin lima container sekaligus tanpa batas resource. Selalu set --memory dan --cpus per container biar gak ada satu service yang boros nyedot habis RAM. 2GB jauh lebih nyaman sih.

    Q: Apakah Docker aman buat production server?

    Aman kalau dipasang dengan benar. Yang wajib: gak jalanin container sebagai root, pakai image resmi atau dari registry terpercaya, pasang restart policy, batasin resource, dan rajin update image + Docker engine-nya. Yang sering bikin tidak aman itu bukan Docker-nya, tapi caranya dipasang asal-asalan.

    Q: Beda Dockerfile sama docker-compose.yml apa ya?

    Dockerfile itu resep buat membangun satu image — isinya instruksi install app kamu. docker-compose.yml itu resep buat menjalankan beberapa container sekaligus — isinya definisi service, port, volume, environment. Seringnya dipakai bareng: Dockerfile bikin image, compose yang jalanin.

    Q: Gimana cara update image yang udah jalan?

    Pola amannya: pull image versi baru, stop container lama, terus run ulang dengan image baru. Kalau pakai compose tinggal docker compose pull terus docker compose up -d. Selalu cek docker logs setelah update buat mastiin gak ada error baru. Backup data dulu sebelum update, apalagi yang nyimpen state di volume.

    Author: Syslog Solutions — NOC & Server Management Team. We handle 500+ servers daily, from shared hosting to enterprise dedicated infrastructure.

    Nah, gitu aja langkah-langkahnya. Coba langsung praktekin di VPS kamu, jangan cuma dibaca doang — soal baru bisa dicerna pas tangan kamu yang jalanin. Kalau masih ada yang janggal, cek log-nya dan bandingin sama tabel troubleshooting di atas. Oh ya, kalau kamu mau liat cara ngatur resource VPS biar makin optimal, ada juga artikel optimasi Nginx di VPS RAM kecil yang cocok buat nemenin eksperimen container kamu. Matur nuwun udah baca sampai sini, dan monggo langsung dicoba. Semangat, udah pasti bisa! Gas terus!