Skip ke konten utama

Cara Install Docker Compose di VPS Ubuntu: Panduan Lengkap untuk Developer

Tim Clouden9 menit baca

Cara Install Docker Compose di VPS Ubuntu: Panduan Lengkap untuk Developer

Bayangkan Anda baru saja menyelesaikan sebuah aplikasi yang terdiri dari web server, database, dan cache. Di laptop, semuanya berjalan mulus. Begitu dipindahkan ke server, konfigurasi mulai berantakan karena versi PHP berbeda, ekstensi database tidak terpasang, dan port saling bertabrakan. Di sinilah banyak developer akhirnya mencari cara install docker compose di VPS, karena Docker Compose mengubah seluruh kerumitan tersebut menjadi satu file konfigurasi yang rapi.

Docker Compose adalah alat resmi dari Docker yang memungkinkan Anda mendefinisikan dan menjalankan banyak kontainer docker sekaligus lewat satu file bernama compose.yaml. Anda tidak perlu menghafal puluhan perintah docker run dengan rangkaian flag panjang. Cukup tulis definisi service sekali, lalu jalankan dengan satu perintah, dan seluruh stack naik dengan urutan yang benar.

Artikel ini adalah tutorial docker vps yang ditulis khusus untuk developer, programmer, dan administrator server. Kami memandu Anda langkah demi langkah di Ubuntu 22.04 maupun 24.04, mulai dari penyiapan sistem, penambahan repository resmi Docker, instalasi Docker Engine beserta docker compose plugin, verifikasi, hingga uji coba proyek nyata. Di Clouden, tim engineering kami setiap hari menangani server kontainer untuk ribuan pelanggan, dan panduan ini kami rangkum langsung dari pengalaman operasional tersebut.

Satu catatan penting sebelum mulai: Docker hanya berjalan penuh pada VPS berteknologi KVM. Jika VPS Anda memakai teknologi virtualisasi lama seperti OpenVZ, kernel milik host dibagikan ke semua pengguna sehingga Anda tidak bisa memuat modul kernel yang dibutuhkan Docker. Pastikan Anda memilih VPS KVM dari awal, atau baca dulu ulasan kami tentang perbedaan VPS OpenVZ dan KVM agar tidak salah langkah.

Mengapa Docker Compose Penting untuk Developer di VPS

Bagi developer, Docker Compose menjawab tiga masalah klasik sekaligus. Pertama, orkestrasi multi kontainer menjadi sederhana. Aplikasi modern jarang berdiri sendiri, biasanya ada web server, database, message queue, dan cache. Dengan Compose, semua service itu didefinisikan dalam satu file compose.yaml di root proyek, lengkap dengan jaringan dan volume yang saling terhubung.

Kedua, konfigurasi menjadi kode. Ketika Anda memindahkan proyek ke VPS baru, Anda cukup menyalin file compose.yaml, menjalankan satu perintah, dan seluruh environment ikut terbangun dengan identik. Tidak ada lagi perbedaan perilaku antara mesin development dan server produksi yang sering memakan waktu berhari-hari.

Ketiga, deploy dan rollback jauh lebih mudah. Ingin mengganti versi database dari 8.0 ke 8.4? Ubah satu baris di file compose, jalankan ulang, dan selesai. Jika terjadi masalah, kembalikan versinya dan stack kembali stabil dalam hitungan menit. Pola ini juga menjadi fondasi yang bagus ketika proyek Anda tumbuh menjadi arsitektur yang lebih modular, seperti yang kami bahas di artikel tentang pengertian microservices.

Pengalaman kami di Clouden memberi contoh nyata. Banyak pelanggan menjalankan stack WordPress dan MySQL di VPS mereka dengan hanya satu file compose, lalu memakai stack yang sama untuk deploy n8n sebagai otomasi kerja mereka. Satu file konfigurasi, banyak service, kontrol penuh. Efisiensi semacam ini sulit didapat bila Anda memasang setiap komponen secara manual di host.

Prasyarat Sebelum Instalasi

Sebelum memulai, pastikan Anda memenuhi daftar berikut:

  1. VPS dengan teknologi KVM, bukan OpenVZ, karena Docker membutuhkan akses penuh ke kernel.
  2. Sistem operasi Ubuntu 22.04 atau Ubuntu 24.04, dua versi LTS yang paling stabil saat ini.
  3. Minimal 1 GB RAM, meski kami sangat menyarankan 2 GB atau lebih agar kontainer docker dan sistem berjalan lega.
  4. Akses root atau user dengan hak sudo untuk menjalankan perintah instalasi.
  5. Koneksi internet stabil di server untuk mengunduh paket dari repository resmi Docker.

Jika semua syarat di atas sudah terpenuhi, Anda siap masuk ke proses cara install docker di VPS berikut ini.

Langkah Install Docker Compose di VPS Ubuntu

Instalasi berikut terdiri dari lima langkah berurutan: pembaruan sistem, penambahan repository resmi Docker, instalasi Docker Engine beserta docker compose plugin, verifikasi, dan uji coba proyek contoh. Ikuti urutannya secara utuh karena setiap langkah menyiapkan komponen yang dibutuhkan langkah berikutnya. Semua perintah sudah kami uji di Ubuntu 22.04 dan 24.04, jadi Anda bisa langsung menyalinnya ke terminal VPS.

Langkah 1: Pembaruan Sistem dan Paket Pendukung

Selalu mulai dengan sistem yang segar. Masuk ke VPS Anda melalui SSH, lalu perbarui daftar paket dan naikkan paket yang sudah terpasang ke versi terbaru:

sudo apt update
sudo apt upgrade

Setelah itu, pasang paket pendukung yang dibutuhkan untuk mengambil key dan sertifikat dari repository Docker melalui HTTPS:

sudo apt install ca-certificates curl

Proses ini biasanya selesai dalam satu sampai dua menit pada VPS ber spesifikasi normal. Bila muncul pertanyaan konfirmasi, cukup tekan Enter untuk melanjutkan.

Langkah 2: Menambahkan Repository Resmi Docker

Metode yang kami rekomendasikan adalah memasang Docker langsung dari repository resmi Docker, bukan dari paket bawaan Ubuntu. Metode ini menjamin Anda selalu mendapatkan versi Docker Engine dan docker compose plugin terbaru, lengkap dengan pembaruan keamanannya.

Pertama, siapkan direktori keyring dan unduh kunci GPG resmi Docker:

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

Kedua, tambahkan repository Docker ke daftar sumber apt Anda:

sudo bash -c 'echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu jammy stable" > /etc/apt/sources.list.d/docker.list'

Perintah di atas menuliskan sumber repository langsung ke file docker.list tanpa menimpa baris lain. Bila VPS Anda memakai Ubuntu 24.04, ganti kata jammy menjadi noble, karena itu adalah codename resmi dari masing masing versi. Terakhir, segarkan ulang daftar paket agar sistem mengenali repository baru tersebut:

sudo apt update

Langkah 3: Instalasi Docker Engine dan Plugin Compose

Sekarang bagian utamanya. Pasang Docker Engine beserta seluruh komponen pendukungnya, termasuk docker compose plugin yang menjadi fokus artikel ini:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Perintah tunggal ini memasang empat hal sekaligus, yaitu Docker Engine sebagai runtime, Docker CLI sebagai antarmuka perintah, containerd sebagai manajer lifecycle kontainer, dan docker compose plugin sebagai orkestrator multi kontainer. Mulai versi ini, Anda tidak perlu lagi memasang Docker Compose versi lama yang berdiri sendiri, karena Compose kini menyatu sebagai subperintah dari docker.

Bila instalasi berjalan lancar, layanan Docker biasanya sudah aktif otomatis. Anda bisa memastikannya kapan saja di Langkah 4 berikut.

Langkah 4: Verifikasi Instalasi

Jangan langsung deploy aplikasi penting sebelum Anda yakin instalasi berjalan sempurna. Ada tiga pemeriksaan cepat yang selalu kami lakukan di tim Clouden.

Pertama, cek versi Docker Engine:

docker version

Perintah ini menampilkan versi client dan server. Keduanya muncul berarti daemon Docker berjalan dengan baik. Kedua, cek versi Docker Compose:

docker compose version

Anda akan melihat output semacam Docker Compose version v2.x.x, yang menandakan docker compose plugin terpasang dengan benar. Ketiga, jalankan kontainer percobaan klasik:

sudo docker run hello-world

Bila muncul pesan selamat datang dari Docker, artinya seluruh rantai mulai dari pengunduhan image, pembuatan kontainer, hingga eksekusi berfungsi normal. Dari titik ini, proses install docker compose di VPS Anda sudah selesai dan siap dipakai untuk proyek sungguhan.

Langkah 5: Uji dengan Proyek Contoh

Verifikasi teknis belum cukup membuktikan manfaat Compose. Sekarang kita bangun satu proyek contoh berisi web server dan database, dua service yang paling sering dipakai developer.

Buat direktori proyek dan file compose.yaml di dalamnya:

mkdir demo-compose && cd demo-compose
nano compose.yaml

Isi file tersebut dengan definisi berikut:

services:
    web:
        image: nginx:latest
        ports:
            - '8080:80'
    db:
        image: mysql:8.0
        environment:
            MYSQL_ROOT_PASSWORD: rahasiaanda
        volumes:
            - db_data:/var/lib/mysql
volumes:
    db_data:

Definisi ini mendeklarasikan dua service, yaitu nginx yang membuka port 8080 di host dan mysql dengan password root serta volume agar data tetap hidup meski kontainer dihapus. Jalankan seluruh stack dalam mode detached agar proses berjalan di latar belakang:

docker compose up -d

Periksa status kontainer:

docker ps

Anda akan melihat dua kontainer dengan status Up. Cobalah buka http://IP_VPS_ANDA:8080 lewat browser, dan halaman selamat datang nginx akan tampil. Ketika Anda selesai bermain, matikan seluruh stack beserta jaringannya dengan satu perintah:

docker compose down

Satu file, dua perintah, satu stack lengkap. Persis seperti itulah cara developer kami bekerja setiap hari ketika menyiapkan environment uji di VPS.

Tips Pasca Instalasi

Setelah instalasi berhasil, ada beberapa penyesuaian kecil yang membuat pengalaman Anda jauh lebih nyaman.

  1. Tambahkan user Anda ke grup docker agar tidak perlu mengetik sudo setiap perintah, lalu keluar dan masuk kembali agar perubahan berlaku:
sudo usermod -aG docker $USER
  1. Pastikan Docker aktif otomatis saat server reboot, sehingga kontainer penting Anda ikut hidup kembali:
sudo systemctl enable docker
  1. Pasang firewall dan hanya buka port yang benar-benar dipakai, misalnya 22 untuk SSH dan 8080 untuk aplikasi uji tadi. Permukaan serangan yang kecil adalah pertahanan pertama server Anda.
  2. Batasi resource tiap kontainer di file compose, misalnya dengan memori maksimum untuk database, agar satu service rakus tidak memusing seluruh VPS.

Troubleshooting Umum

Dari ribuan sesi dukungan yang kami tangani, tiga kendala berikut paling sering muncul.

  1. GPG error saat apt update. Bila muncul pesan NO_PUBKEY atau kesalahan signature, biasanya kunci keyring tidak tersimpan sempurna. Ulangi Langkah 2 dari awal, pastikan perintah curl mengunduh gpg tanpa galat, lalu jalankan apt update lagi.
  2. Permission denied pada docker socket. Pesan ini muncul ketika user biasa mencoba memakai docker tanpa hak akses. Solusinya ada di tips pertama di atas, yaitu memasukkan user ke grup docker. Jika sudah masuk grup namun tetap gagal, pastikan Anda benar-benar keluar dan login ulang sesi SSH.
  3. Port sudah digunakan. Ketika docker compose up gagal dengan pesan address already in use, artinya port di file compose sudah dipakai service lain. Cek pemakaiannya, lalu ubah sisi kiri pemetaan port di compose.yaml, misalnya dari 8080 ke 8081, lalu jalankan ulang.

Kesimpulan

Kini Anda telah menguasai cara install docker compose di VPS Ubuntu dari nol sampai siap produksi, mulai dari pembaruan sistem, penambahan repository resmi Docker, instalasi Docker Engine dan docker compose plugin, verifikasi, hingga uji stack web server dan database dengan satu file compose.yaml. Dengan modal ini, deploy aplikasi multi kontainer menjadi pekerjaan menit, bukan hari, dan rollback menjadi hal yang tidak menakutkan lagi.

Langkah berikutnya adalah menaruh proyek nyata di server yang layak. VPS KVM dari Clouden memberi Anda akses penuh ke kernel, sumber daya yang terjamin, dan dukungan tim lokal yang paham kebutuhan developer Indonesia, sehingga Docker dan seluruh kontainer Anda berjalan pada performa maksimal. Jika Anda sedang memilih server untuk proyek berikutnya, silakan lihat pilihan VPS kami dan mulai membangun dengan tenang.

Promo hosting Clouden
Panduan Memilih Server Python yang Tepat untuk Aplikasi Django dan Flask
7 menit baca

Panduan Memilih Server Python yang Tepat untuk Aplikasi Django dan Flask

Anda sudah menulis aplikasi Python yang siap tayang, lalu muncul pertanyaan besar: di mana aplikasi itu akan berjalan? Kode sudah lulus uji di laptop, dependensi terpasang rapi, tetapi begitu disebarkan ke server, aplikasi justru error atau tidak merespons. Masalahnya hampir selalu bukan pada kode, melainkan pada pilihan hosting python yang kurang sesuai dengan karakter aplikasi Anda.

Cara Deploy Laravel ke VPS: Panduan Lengkap dari Nol sampai Website Online
9 menit baca

Cara Deploy Laravel ke VPS: Panduan Lengkap dari Nol sampai Website Online

Anda sudah menyelesaikan aplikasi Laravel dan kini bertanya bagaimana cara deploy Laravel ke VPS agar website online dan bisa diakses publik. Pertanyaan ini muncul di hampir setiap percakapan Clouden dengan developer Indonesia, karena aplikasi yang mulus di laptop sering terasa rumit saat dipindah ke server sungguhan. Kabar baiknya, proses deploy Laravel ke VPS jauh lebih terstruktur daripada yang dibayangkan, selama Anda mengikuti urutan langkah yang benar.

Apa Itu Database dan Bagaimana Perannya dalam Mengelola Data Website Anda
7 menit baca

Apa Itu Database dan Bagaimana Perannya dalam Mengelola Data Website Anda

Dalam dunia internet yang sangat luas, setiap interaksi yang kita lakukan meninggalkan jejak digital. Saat Anda masuk ke akun media sosial, menyimpan produk di keranjang belanja toko online, atau sekadar membaca artikel di sebuah blog, ada sebuah sistem raksasa yang bekerja dengan sangat rapi untuk menyimpan dan menyajikan informasi tersebut. Sistem ini merupakan pondasi bagi setiap website dan aplikasi modern yang kita gunakan setiap hari, yaitu database.

Apa Itu PHP dan Bagaimana Perannya dalam Membangun Website Dinamis
8 menit baca

Apa Itu PHP dan Bagaimana Perannya dalam Membangun Website Dinamis

Saat Anda menjelajahi internet, Anda mungkin sering berinteraksi dengan berbagai fitur interaktif seperti formulir pendaftaran, sistem login anggota, hingga keranjang belanja di toko online. Pernahkah Anda bertanya bagaimana sebuah website bisa mengingat nama Anda setelah login atau menampilkan stok barang secara otomatis? Keajaiban teknis tersebut terjadi karena adanya bahasa pemrograman yang bekerja di balik layar server. Salah satu pemain paling dominan dan legendaris dalam ekosistem ini adalah PHP.