İçeriğe atla
VDS Panel
VDS Panel
Sunucu Yönetimi
Teknik 28 Mart 2026 · 8 dk okuma

Docker Compose Projelerini Panelden Yönetmek: Multi-Container Orkestrasyon

docker-compose.yml içeren projelerinizi VDS Panel üzerinden deploy edin. Servis bağımlılıkları, volume yönetimi, env inject ve scale up/down işlemleri arayüzden.

#docker #docker compose #container #orkestrasyon
VDS Panel
VDS Panel Ekibi
Ürünü geliştiren ekip

Modern uygulamalar artık tek container’dan ibaret değil. API sunucusu, veritabanı, cache, queue, worker, tipik bir web uygulaması 4-6 container ister. Docker Compose bu ekosistemi tek bir YAML dosyasında tanımlamanıza ve tek komutla çalıştırmanıza izin verir.

Bu yazıda Docker Compose’un ne olduğunu, VDS Panel’in Compose projelerini nasıl yönettiğini ve production’da Compose kullanımının pratik ipuçlarını anlatacağız.

Bir bakışta
1 YAML
Tüm stack
Servis sayısı
Otomatik
Bağımlılık yönetimi
Hot
Config reload

Docker Compose nedir?

Compose, birden fazla Docker container’ın birbirleriyle konuşmasını, paylaşımlı ağa bağlanmasını, volume’larını ve restart politikalarını tek bir YAML’da tanımlamaktır. Örnek:

services:
  api:
    build: ./api
    ports:
      - "3000:3000"
    depends_on:
      - postgres
      - redis
  postgres:
    image: postgres:16
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: secret
  redis:
    image: redis:7-alpine

volumes:
  db-data:

docker compose up -d komutuyla tüm stack ayağa kalkar. depends_on sayesinde API, postgres hazır olmadan başlamaz.

Panelden Compose yönetimi

VDS Panel, bir projeyi eklediğinizde docker-compose.yml varlığını kontrol eder. Varsa:

  1. 01
    Compose dosyası parse edilir
    Panel her servisi tanımlar, image'ları indirir ya da build eder. Volume'lar, network'ler ve bağımlılıklar otomatik kurulur.
  2. 02
    Env değişkenleri inject edilir
    Panel secret vault'undaki env'ler yml içine enjekte edilir. Git'e yazılmaz, terminal history'ye sızmaz.
  3. 03
    Servisler sağlıklı sırayla başlar
    depends_on ve healthcheck direktifleri takip edilir. Postgres hazır olmadan API başlamaz.
  4. 04
    Panel her servisi ayrı ayrı yönetir
    Servis bazında log, restart, scale, stop işlemleri arayüzden yapılır.

Compose vs Kubernetes

Küçük-orta ölçekli projeler için Compose, Kubernetes’ten çok daha basittir. Ama ölçek büyüdükçe sınırlar görünür.

Basit

Docker Compose

  • Tek sunucu odaklı
  • YAML daha kısa, daha okunur
  • Hızlı kurulum (dakikalar)
  • Service mesh yok
  • Rolling update sınırlı
  • Auto-scaling yok
Ölçeklenebilir

Kubernetes (K3s)

  • Multi-node cluster
  • Deployment + Service + Ingress ayrı
  • Öğrenme eğrisi dik
  • Built-in service mesh
  • Rolling update standart
  • HPA ile auto-scaling

VDS Panel her ikisini de destekler. Küçük projeler için Compose, ölçek arttıkça K3s modülüne geçiş yaparsınız.

Pratik Compose örneği: Tam bir Node.js stack’i

Gerçek bir senaryo: Node.js API, PostgreSQL, Redis cache, RabbitMQ queue, worker servisi.

services:
  api:
    build: ./api
    environment:
      DATABASE_URL: postgres://app:${DB_PASS}@postgres:5432/app
      REDIS_URL: redis://redis:6379
      AMQP_URL: amqp://rabbit:5672
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_started
    restart: unless-stopped

  worker:
    build: ./worker
    environment:
      AMQP_URL: amqp://rabbit:5672
      DATABASE_URL: postgres://app:${DB_PASS}@postgres:5432/app
    depends_on:
      - rabbit
    restart: unless-stopped
    deploy:
      replicas: 2

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: ${DB_PASS}
      POSTGRES_DB: app
    volumes:
      - db-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U app"]

  redis:
    image: redis:7-alpine
    volumes:
      - redis-data:/data

  rabbit:
    image: rabbitmq:3-management-alpine
    ports:
      - "15672:15672"

volumes:
  db-data:
  redis-data:

VDS Panel bu dosyayı algılar, ${DB_PASS} değişkenini secret vault’tan alır, beş container’ı sağlıklı sırayla ayağa kaldırır. Worker servisini 2 instance olarak çalıştırır.

Scaling

Compose deploy.replicas ile basit scaling destekler. Panel arayüzünde bu sayıyı slider ile değiştirebilirsiniz. 2 → 5 worker çıkarmak tek tık.

State'li vs state'siz servisler

Scaling için service state’siz olmalı. Session bilgisi memory’de değil Redis’te, upload’lar diskte değil MinIO’da. Panel state’li servisi (postgres gibi) scale etmenize izin vermez, çünkü tek instance olması gerekir.

Network yönetimi

Compose varsayılanda her proje için dedike network oluşturur. Servisler birbirlerine container adıyla erişir (postgres:5432, redis:6379). Dış dünyaya açılması istenen port’lar ports: directive’iyle belirtilir.

VDS Panel güvenlik için:

  • Sadece public port’lar internet’e çıkar
  • Localhost’a bind edilmiş servisler (127.0.0.1:3000:3000 gibi) sadece nginx proxy’den erişilebilir
  • Intra-container trafik tamamen izole

Volume yönetimi

Persistent veriler volume’larda tutulur. VDS Panel volume’ları:

  • Proje adıyla prefix’ler (çakışma olmaz)
  • Günlük otomatik yedekler (age veya gpg ile şifreli)
  • 30 gün retention
  • S3 veya R2 upload destekli

docker compose down volume’ları silmez; veri güvende kalır. Sadece docker compose down -v dediğinizde silinir (panel varsayılan olarak volume’u korur).

Env dosyası güvenliği

.env dosyalarını asla git’e commit etmeyin. Panel env yönetimi:

  • Değişkenler panel DB’sinde şifrelendirilir
  • Runtime’da container’a inject edilir
  • Dosyaya yazılmaz, process environment’ında sadece
  • Admin panel UI’dan değişken yönetimi

Sonuç

Docker Compose, modern multi-container uygulamalarınızı tek YAML dosyasında tanımlayıp yönetmenin standart yolu. VDS Panel bu dosyayı anlar, hepsini otomatik ayağa kaldırır ve ölçeklenme, log izleme, env yönetimi gibi işlemleri arayüzden yönetmenize izin verir.

Kubernetes’e geçmeye hazır mısınız diye emin değilseniz, Compose ile başlayın. Proje büyüdüğünde panelin K3s modülü sizi bekliyor. Detaylar için iletişim formundan ulaşın.

Kendi sunucunuzda denemek ister misiniz?

İletişim formundan ulaşın, kullanım senaryonuza uygun lisans + kurulum planını birlikte hazırlayalım.

Hazır olduğunuzda buradayız

Kendi sunucunuzda modern deploy deneyimi, bir iletişim mesajı uzakta.

Kullanım senaryonuzu anlayıp size uygun lisans ve kurulum planını hazırlayalım. Ortalama yanıt süremiz 24 saatin altında.