Halo, Sob! Docker Compose adalah alat yang memungkinkan kamu menjalankan lingkungan aplikasi multi-kontainer berdasarkan definisi yang ditetapkan dalam file YAML. Alat ini menggunakan definisi layanan untuk membangun lingkungan yang sepenuhnya dapat disesuaikan dengan beberapa kontainer yang dapat berbagi jaringan dan volume data.
Artikel kali ini akan membahas cara menginstal Docker Compose di server Rocky Linux 9, cuss simak di di bawah ini.
Prasyarat
- Memiliki hosting VPS Rocky Linux aktif
- Sudah menginstal Docker di VPS Rocky Linux. Kalau belum cek panduannya di Cara Install Docker di Rocky Linux ikuti step 1 dan 2.
Step 1: Buat Koneksi SSH VPS
Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.
Detail informasi awal layanan kamu bisa diakses pada Informasi Awal Layanan VM.
Step 2: Install Docker Compose
Sebelum mulai instalasi, cek apakah ada package sistem yang perlu diupdate.
sudo dnf check-update
Kalau ada jalankan command untuk update.
sudo dnf update -y
Instal docker compose yang merupakan plugin dari docker.
sudo dnf install docker-compose-plugin
Untuk memastikan Docker compose berhasil diinstal, jalankan command:
docker compose version
Outputnya akan seperti:
Docker Compose version v2.35.1
Step 3: Setting File docker-composer.yml
Membuat direktori ‘compose-demo’ di direktori home dan masuk ke dalamnya.
mkdir ~/compose-demo
cd ~/compose-demo
Lalu, siapkan folder bernama ‘app’ untuk menyimpan file HTML untuk NginX.
mkdir app
Lalu buat file index.html di dalamnya.
sudo nano app/index.html
Isi dengan:
<!doctype html>
<html lang=”en”>
<head>
<meta charset=”utf-8″>
<title>Docker Compose Demo</title>
<link rel=”stylesheet” href=”https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css”>
</head>
<body>
<h1>This is a Docker Compose Demo Page.</h1>
<p>This content is being served by an Nginx container.</p>
</body>
</html>
Tekan CTRL+X, Y lalu ENTER untuk menyimpan dan keluar dari editor.
Selanjutnya buat file konfigurasi Docker Compose.
sudo nano docker-compose.ymlPoetry' );
Isi file docker-compose.yml dengan:
version: '3.7'
services:
web:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./app:/usr/share/nginx/html
Penjelasan:
- version: ‘3.7’: Menentukan versi file konfigurasi Docker Compose.
- services: Mendefinisikan layanan (service) yang akan dijalankan.
- web: Nama service yang digunakan.
- image: nginx:alpine: Gunakan image Nginx versi ringan berbasis Alpine Linux.
- ports: “8000:80”: Permintaan ke port 8000 pada komputer host akan diteruskan ke port 80 di dalam container (tempat Nginx berjalan).
- volumes: Folder app di komputer host akan disambungkan ke direktori /usr/share/nginx/html di dalam container. Ini adalah root dokumen default Nginx, sehingga file HTML akan langsung tersaji.
Step 4: Menjalankan Docker Compose
Setelah file docker-compose.yml sudah dibuat, sekarang kamu bisa menjalankan Docker Compose untuk menghidupkan lingkungan aplikasimu. Perintah berikut ini akan mengunduh image Docker yang dibutuhkan, membuat container untuk layanan web, dan menjalankannya di latar belakang.
docker compose up -d
Kemudian jalankan perintah berikut untuk memeriksa container:
docker compose ps
Outputnya akan menunjukkan situs container dan port yang digunakan.
Akses aplikasi di web browser melalui url http://localhost:8000 kalau di lokal atau http://ip-server-kamu:8000 kalau menggunakan akses remote/VPS.
Nah, karena volume di mount, setiap perubahan pada file index.html akan langsung terlihat di browser setelah di refresh, tanpa membuat container ulang.
Info tambahan, Sob kalau kamu mendapati warning seperti:
WARN[0000] /root/compose-demo/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
Docker Compose tidak memerlukan atribut ‘version’ (seperti version: ‘3.7’) di file docker-compose.yml. Kamu bisa hapus baris itu di dalam index.html tadi agar peringatan ini tidak muncul lagi.
Step 5: Daftar Perintah Docker Compose
Beberapa perintah docker compose yang perlu kamu ketahui:
- docker compose up -d
Fungsinya untuk mengunduh image Docker (jika belum ada), membuat container, dan menjalankannya di background (latar belakang).
Contoh: Menjalankan server web Nginx di latar belakang. - docker compose logs
Fungsinya untuk melihat log aktivitas container, seperti proses yang berjalan saat Nginx di-setup atau permintaan HTTP dari browser. Cocok untuk mengecek apakah container berjalan dengan benar. - docker compose pause
Fungsinya untuk menjeda (pause) sementara semua container tanpa mematikannya. Container tetap ada, hanya tidak aktif sementara waktu. - docker compose unpause
Fungsinya untuk melanjutkan (resume) kembali container yang sebelumnya dijeda. Container akan melanjutkan dari keadaan terakhir tanpa kehilangan data. - docker compose stop
Fungsinya untuk menghentikan jalannya container, tetapi tidak menghapusnya. Data tetap tersimpan dan container bisa dijalankan kembali nanti. - docker compose down
Fungsinya untuk menghapus semua container, jaringan (network), dan volume yang dibuat Docker Compose. Tidak menghapus image (seperti nginx:alpine), jadi proses akan lebih cepat saat dijalankan lagi. - docker image rm nginx:alpine
Fungsinya untuk menghapus image Docker yang telah diunduh (misalnya nginx:alpine). Berguna untuk membersihkan disk jika image tidak lagi dibutuhkan.
Referensi lengkap mengenai perintah docker compose dapat kamu akses di Docker Compose Documentation.
Dengan kombinasi Docker Compose dan Nginx ini kamu sudah mempraktikkan cara sederhana membuat server web statis. Terus bereksplorasi ya, Sob!
Kalau ada yang masih bingung kamu bisa hubungi Tim Support Jagoan Hosting via Live Chat atau Open Ticket ya, Sob!
Hai, Sob! PostgreSQL adalah database open-source yang powerful dan banyak digunakan untuk aplikasi berbasis web. Biasanya PostgreSQL di-install di Rocky Read more
Hai, Sob! SFTP (SSH File Transfer Protocol) adalah cara aman buat transfer file antara komputer lokal dan server. Berbeda dari Read more
Hai, Sob! Kalau kamu ingin menjalankan aplikasi berbasis PHP di Rocky Linux, kamu butuh dua komponen utama: PHP itu sendiri Read more
Hai, Sob! Nginx adalah web server alternatif yang ringan dan cepat dari Apache yang sering digunakan untuk melayani banyak permintaan Read more