docker compose jalankan banyak container | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: docker compose jalankan banyak container

Tuesday, May 19, 2026

docker compose jalankan banyak container

🐳 Docker ⚙️ Docker Compose 📚 Artikel 5 dari 10

Docker Compose: Jalankan Banyak Container Sekaligus dengan Mudah

Capek jalankan container satu per satu? Saatnya kenalan dengan Docker Compose — senjata rahasia developer modern untuk orkestrasi multi-container yang rapi, cepat, dan nggak bikin pusing.

⏱ 9 menit
Estimasi Baca
🟢 Pemula
Level
2026
Updated

Bayangkan kamu lagi masak, dan harus nyalain kompor, oven, rice cooker, dan blender satu per satu — sambil hafal urutan, parameter, dan tombol masing-masing. Melelahkan, kan? Nah, itulah rasanya kalau kamu jalankan banyak container Docker secara manual. Di sinilah Docker Compose tutorial ini hadir untuk menyelamatkan hari-harimu!

Docker Compose adalah tool resmi dari Docker yang memungkinkan kamu mendefinisikan dan menjalankan banyak container sekaligus hanya dengan satu file konfigurasi dan satu perintah. Kalau kamu sudah sampai di artikel ke-5 dari seri Docker from Zero to Zorro ini, berarti kamu sudah siap naik level. Let's go! 🚀

💎 Konsep Utama

Docker Compose adalah alat untuk mendefinisikan dan menjalankan multi-container Docker application menggunakan file YAML bernama docker-compose.yml.

Satu file. Satu perintah. Semua container berjalan bersama. Sesederhana itu.

🧩 Apa Itu Docker Compose dan Kenapa Kamu Butuh Ini?

Sebelum lanjut ke Docker Compose tutorial yang lebih teknis, mari kita pahami dulu masalahnya. Dalam pengembangan aplikasi nyata — misalnya aplikasi Laravel — kamu butuh setidaknya tiga komponen berjalan bersamaan:

Komponen Contoh Container Tanpa Compose 😭 Dengan Compose 🎉
Web Server / App nginx / php-fpm Jalankan manual + flag panjang Otomatis bersama
Database MySQL / PostgreSQL Port, volume, env manual Satu baris konfigurasi
Cache / Queue Redis Hapus dan buat ulang tiap reset Persistent, terkoneksi otomatis

Tanpa Docker Compose, kamu harus menjalankan tiga perintah panjang secara terpisah, memastikan semuanya terhubung ke jaringan yang sama, dan mengingat environment variable masing-masing container. Sangat rawan salah dan membuang waktu.

Dengan Docker Compose? Satu file docker-compose.yml dan satu perintah docker compose up — selesai.

🔥 FAKTA MENARIK

Docker Compose awalnya adalah proyek open-source bernama Fig, dibuat oleh Orchard pada tahun 2013. Docker mengakuisisinya setahun kemudian dan mengintegrasikannya sebagai fitur resmi. Sekarang di Docker versi terbaru, kamu cukup ketik docker compose (tanpa tanda hubung) — langsung jalan!

📝 Struktur File docker-compose.yml yang Wajib Kamu Pahami

File docker-compose.yml adalah jantung dari Docker Compose. Formatnya menggunakan YAML — bahasa konfigurasi yang human-readable dan mudah ditulis. Mari kita bedah strukturnya:

docker-compose.yml
version: '3.8'

services:
  app:              # Nama service (bebas kamu tentukan)
    image: nginx:alpine
    ports:
      - "8080:80"      # host:container
    volumes:
      - ./html:/usr/share/nginx/html
    networks:
      - mynet

  db:               # Service kedua: database
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: myapp
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - mynet

volumes:
  db_data:           # Named volume agar data DB tidak hilang

networks:
  mynet:             # Semua service di network yang sama bisa saling ngobrol
💡 TIPS PENTING

Indentation (lekukan) di YAML itu krusial! Gunakan 2 spasi, bukan tab. Satu kesalahan indentasi bisa bikin seluruh konfigurasi gagal dibaca. Kamu bisa pakai ekstensi YAML di VS Code untuk auto-formatting.

🔍 ANATOMY FILE docker-compose.yml
version
Versi schema Compose. Gunakan '3.8' untuk fitur terbaru.
services
Daftar semua container yang akan dijalankan. Setiap child = satu container.
volumes
Named volumes agar data persisten walau container dihapus.
networks
Jaringan virtual yang menghubungkan container satu sama lain.

🚀 Docker Compose Tutorial: Jalankan Stack Aplikasi Web Dari Nol

Cukup teorinya — sekarang kita praktik! Di bagian Docker Compose tutorial ini, kita akan membangun stack sederhana berisi Nginx (web server) + MySQL (database) + Redis (cache). Inilah fondasi dari aplikasi web modern.

1

Buat Direktori Project

Pertama, buat folder untuk project kita dan masuk ke dalamnya.

Terminal
$ mkdir docker-compose-demo
$ cd docker-compose-demo
2

Buat File docker-compose.yml

Buat file docker-compose.yml dengan isi berikut. Ini adalah stack 3 service sekaligus:

docker-compose.yml
version: '3.8'

services:

  # ── 1. Web Server ───────────────────
  webserver:
    image: nginx:alpine
    container_name: demo_web
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    depends_on:
      - db
      - redis
    networks:
      - app_network

  # ── 2. Database ─────────────────────
  db:
    image: mysql:8.0
    container_name: demo_db
    environment:
      MYSQL_ROOT_PASSWORD: rootpass123
      MYSQL_DATABASE: demo_db
      MYSQL_USER: demouser
      MYSQL_PASSWORD: demopass
    volumes:
      - mysql_data:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - app_network

  # ── 3. Cache Redis ──────────────────
  redis:
    image: redis:7-alpine
    container_name: demo_redis
    ports:
      - "6379:6379"
    networks:
      - app_network

volumes:
  mysql_data:

networks:
  app_network:
    driver: bridge
3

Buat Halaman HTML Sederhana

Buat folder html/ dan tambahkan file index.html sederhana agar Nginx punya sesuatu untuk ditampilkan:

Terminal
$ mkdir html
$ echo "<h1>Docker Compose Works! 🎉</h1>" > html/index.html
4

Jalankan Semua Container!

Inilah momen yang kamu tunggu-tunggu. Satu perintah untuk menjalankan semua service:

Terminal
# Jalankan di foreground (lihat log)
$ docker compose up

# Atau jalankan di background (detach mode)
$ docker compose up -d

# Cek status semua container
$ docker compose ps

# Matikan semua container
$ docker compose down

Buka browser, akses http://localhost:8080 — dan voilà! 🎉

⚡ INSIGHT PENTING

Key depends_on memastikan service tertentu dimulai setelah service lain siap. Tapi perhatikan: depends_on hanya menunggu container berjalan, bukan menunggu aplikasi di dalamnya benar-benar siap. Untuk production, tambahkan healthcheck agar lebih andal.

⚡ Perintah-Perintah Docker Compose Tutorial yang Paling Sering Dipakai

Setelah tahu cara membuat file konfigurasi, kamu perlu hafal perintah-perintah penting ini. Bookmark atau catat — kamu pasti sering kembali ke sini!

Perintah Fungsi Kapan Dipakai
docker compose up -d Jalankan semua service di background Mulai kerja setiap hari
docker compose down Hentikan dan hapus container Selesai kerja / reset
docker compose logs -f Lihat log semua service secara real-time Debug masalah
docker compose ps Cek status semua service Monitoring cepat
docker compose exec db bash Masuk ke shell dalam container Akses langsung DB/server
docker compose build Build ulang image dari Dockerfile Setelah ubah Dockerfile
docker compose down -v Hapus container + semua volume Reset total (data hilang!)
⚠️ PERHATIAN

Perintah docker compose down -v akan menghapus semua named volumes — termasuk data database kamu! Gunakan hanya jika kamu yakin ingin reset total. Untuk sehari-hari, cukup pakai docker compose down tanpa flag -v.

💡 TIPS: Gunakan File .env!

Jangan taruh password dan secret langsung di docker-compose.yml. Buat file .env di folder yang sama, lalu referensikan variabelnya:

# .env
MYSQL_ROOT_PASSWORD=supersecret
MYSQL_DATABASE=myapp

# docker-compose.yml
environment:
  MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
  MYSQL_DATABASE: ${MYSQL_DATABASE}
📚 Bagian dari Seri Besar

Seri Belajar Docker: Docker from Zero to Zorro

Artikel ini adalah bagian ke-5 dari 10 artikel dalam seri lengkap belajar Docker dari nol sampai mahir. Kunjungi halaman utama seri untuk melihat daftar isi lengkapnya.

🗺️ Lihat Daftar Isi Seri Lengkap →
✅ Kesimpulan

Kamu Sekarang Sudah Bisa Orkestrasi Multi-Container! 🎊

Di artikel Docker Compose tutorial ini, kamu sudah belajar banyak:

  • 📌 Apa itu Docker Compose dan mengapa ini wajib dikuasai setiap developer
  • 📌 Struktur file docker-compose.yml beserta elemen-elemen pentingnya
  • 📌 Cara membangun stack web lengkap (Nginx + MySQL + Redis) dari nol
  • 📌 Perintah-perintah Docker Compose yang paling sering digunakan
  • 📌 Best practice: penggunaan file .env untuk keamanan konfigurasi

Docker Compose adalah jembatan penting menuju pengembangan aplikasi modern berbasis microservice. Kuasai ini dengan baik, karena di artikel berikutnya kita akan langsung setup project Laravel menggunakan Docker Compose — tanpa perlu install PHP di komputer lokal kamu sama sekali!

💬 Punya pertanyaan atau menemukan kendala saat praktik? Tulis di kolom komentar di bawah! Kamu juga bisa share artikel ini ke teman developer lain yang lagi belajar Docker — biar makin banyak yang terbantu. 🙏

🏷️ Tags
#BelajarDocker #ZeroToZorro #DockerComposeTutorial #DockerCompose #MultiContainer #DevOps #WebDevelopment #YAML

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux