Cara tercepat: buat server dengan image Docker
Jika membuat server baru, memilih Docker di daftar image adalah cara tercepat. Server dimulai dengan Docker Engine dan Docker Compose sudah terpasang di atas Ubuntu 24.04 LTS, jadi begitu login Anda bisa langsung menjalankan docker compose up. Pengenalan aplikasi dan ukuran yang disarankan ada di halaman VPS Docker.
Jika ingin menambahkan Docker ke server yang sudah dipakai, atau memakai sistem operasi lain seperti Debian dan AlmaLinux, instal sendiri dengan urutan di bawah. Semua perintah mengasumsikan Anda login sebagai root. Jika login sebagai pengguna biasa, tambahkan sudo di depan perintah.
Yang perlu diperiksa sebelum instalasi
Docker berjalan di server ukuran berapa pun. Untuk proyek pribadi yang menjalankan beberapa kontainer, paket umum terkecil 12GB sudah cukup; untuk menjalankan database, web server, dan cache bersama, 24GB atau lebih memberi Anda ruang yang cukup. Jika Anda sering mengunduh dan membangun image, VPS NVMe dengan disk cepat akan membuat perbedaan yang terasa.
Jika ada paket Docker lama dari repositori sistem operasi, hapus dulu agar tidak tercampur dengan paket resmi. Paket yang tidak terpasang akan dilewati, jadi aman dijalankan apa adanya.
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt remove -y $pkg; doneInstalasi Docker di Ubuntu 24.04
Langkah 1. Tambahkan key dan alamat repositori
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
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" > /etc/apt/sources.list.d/docker.listLangkah 2. Instal Docker Engine dan Compose
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginSetelah instalasi selesai, layanan Docker menyala otomatis dan ikut menyala saat server di-restart. Perintah yang sama juga berjalan di Ubuntu 22.04 dan 26.04. Nama versi pada alamat repositori dibaca otomatis dari /etc/os-release.
Instalasi Docker di Debian 13
Urutan di Debian sama dengan Ubuntu, hanya alamat repositori yang berubah menjadi linux/debian. Di Debian 12 juga memakai perintah yang sama.
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
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/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginInstalasi Docker di AlmaLinux 10
AlmaLinux dan Rocky Linux memakai repositori RHEL dari Docker. Bersihkan dulu Podman bawaan agar tidak bentrok, lalu instal. Perintahnya sama juga untuk AlmaLinux 9 serta Rocky Linux 9 dan 10.
dnf remove -y podman buildah runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now dockerSaat instalasi pertama ditanya apakah menerima key tanda tangan repositori, tekan y. Di keluarga RHEL, layanan tidak menyala otomatis setelah instalasi, jadi nyalakan sekarang dan saat boot dengan systemctl enable --now docker di baris terakhir.
Memastikan instalasi dan kontainer pertama
Jalankan kontainer uji sekali dengan perintah di bawah. Jika muncul pesan yang diawali Hello from Docker, berarti engine, pengunduhan image, dan eksekusi kontainer semuanya berjalan baik. Dengan --rm, kontainer langsung dibersihkan setelah selesai.
docker run --rm hello-world
docker compose versionJika ingin memakai Docker sebagai pengguna biasa, masukkan pengguna itu ke grup docker lalu login lagi. Grup docker punya hak setara root, jadi hanya masukkan pengguna yang terpercaya.
usermod -aG docker nama_penggunaMenjalankan layanan dengan Docker Compose
Compose adalah cara menuliskan pengaturan kontainer dalam satu file YAML lalu menjalankannya dengan satu baris. Meski server dipindah atau dibuat baru, lingkungan yang sama bisa berdiri lagi asalkan file yang sama ada. Contohnya, file yang menjalankan satu web server Nginx terlihat seperti ini.
mkdir -p /opt/web && cd /opt/web
cat > compose.yaml <<'EOF'
services:
web:
image: nginx:stable
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
EOF
docker compose up -dBuka http://YOUR_SERVER_IP di browser dan halaman Nginx akan muncul. Taruh index.html di folder html dan file itu yang akan tampil. Empat perintah di bawah ini sudah cukup untuk pemakaian sehari hari.
docker compose ps: menampilkan kontainer yang sedang berjalan dan port-nya.docker compose logs -f: mengikuti log secara real time. Keluar dengan Ctrl+C.docker compose pull && docker compose up -d: mengambil image baru dan mengganti kontainer ke versi baru.docker compose down: menghentikan dan membersihkan kontainer. Data di volume tetap tersimpan.
Jika menuliskan restart: unless-stopped, kontainer juga otomatis berjalan lagi saat server di-restart. Hanya kontainer yang Anda hentikan sendiri yang tetap berhenti.
Pengaturan firewall dan publikasi port
Docker langsung memasukkan port yang dipublikasikan dengan ports: ke aturan firewall (iptables) untuk membukanya. Jadi port yang tidak diizinkan di ufw pun bisa diakses dari luar jika ditulis di ports:. Database atau panel pengelolaan yang tidak perlu terlihat dari luar sebaiknya diikat hanya ke 127.0.0.1 seperti di bawah agar hanya bisa diakses dari dalam server.
ports:
- "127.0.0.1:5432:5432"Untuk layanan web, publikasikan hanya port 80 dan 443, dan biarkan yang lain saling memanggil dengan nama layanan di dalam jaringan Compose yang sama agar rapi. Untuk firewall dasar seluruh server, ikuti panduan firewall dasar dan buka hanya SSH, HTTP, dan HTTPS.
Pengelolaan log dan disk
Jika tidak diatur, log kontainer akan terus menumpuk. Tetapkan log driver local di /etc/docker/daemon.json seperti di bawah agar log dikompresi dan hanya disimpan sebatas ukuran tertentu. Setelah disimpan, jalankan systemctl restart docker dan pengaturan berlaku untuk kontainer yang dibuat berikutnya.
{
"log-driver": "local"
}Image yang tidak dipakai dan kontainer yang berhenti juga memakan disk. Lihat pemakaian dengan docker system df, lalu bersihkan image yang tidak dipakai dengan docker image prune -a. Jika data makin banyak, Anda juga bisa memasang disk blok NVMe ke server dan memakainya sebagai folder data Docker.
Melindungi data dan langkah selanjutnya
Kontainer bisa dihapus dan dibuat ulang kapan saja, tetapi data di volume tidak bisa dibuat ulang. Buat file dump database secara rutin, dan lindungi seluruh server dengan backup otomatis atau snapshot agar lebih tenang. Caranya ada di panduan backup dan snapshot.
File Compose untuk menjalankan WordPress dengan Docker ada di panduan instalasi WordPress. Jika ingin men-deploy banyak aplikasi dari layar dan memasang sertifikat HTTPS otomatis, coba buat server dengan image Coolify atau Dokploy. Ukuran yang cocok khusus untuk kontainer dirangkum di VPS kontainer.
