Docker Compose Oluşturucu
docker compose up -d docker compose ps docker compose logs -f
Bu araç tamamen tarayıcında çalışır; compose dosyan ve üretilen şifreler hiçbir sunucuya gönderilmez.
Servisleri seç, compose.yaml hazır.
Uygulamanı, veritabanını, önbelleği ve ters vekil sunucunu kartlardan ekle; imaj, port, ortam değişkeni ve volume ayarlarını düzenle. Servisler birbirine otomatik bağlanır, şifreler tarayıcında rastgele üretilir ve ayrı bir .env dosyasına yazılır.
Docker Compose dosyası nasıl oluşturulur?
Docker Compose, birden fazla konteyneri tek bir YAML dosyasında tanımlayıp tek komutla çalıştırmanı sağlar. Dosyanın adı
compose.yaml (eski projelerde docker-compose.yml) olur ve en üstte services: anahtarı altında her servis
için imaj, portlar, ortam değişkenleri, volume’lar ve yeniden başlatma politikası yazılır.
Bu araçla servisleri kartlardan seçip düzenlersin; doğru girintili, birbirine bağlı ve sağlık kontrollü dosya hazır gelir.
Güncel Compose Specification’da dosyanın başındaki version: satırı artık gerekmez ve yazılırsa uyarı verir; bu yüzden üretilen dosyada yer almaz.
Temel docker compose komutları
| Komut | Ne yapar? |
|---|---|
docker compose up -d | Servisleri oluşturur ve arka planda başlatır. Dosyayı değiştirdikten sonra tekrar çalıştırınca yalnızca değişen servisler yeniden oluşturulur. |
docker compose ps | Servislerin durumunu ve sağlık kontrolü sonucunu gösterir. |
docker compose logs -f wordpress | Bir servisin günlüklerini canlı izler; servis adı vermezsen hepsini gösterir. |
docker compose pull | İmajların yeni sürümlerini indirir; ardından up -d ile güncellenmiş konteynerler başlatılır. |
docker compose down | Konteynerleri ve ağı kaldırır. Adlandırılmış volume’lar kalır; -v eklersen veriler de silinir. |
docker compose exec mariadb sh | Çalışan bir konteynerin içinde komut çalıştırır. |
docker-compose mı, docker compose mu?
Tireli docker-compose, Python ile yazılmış eski Compose V1 aracıdır ve 2023’te desteği sona erdi. Bugün kullanılan
Compose V2, Docker CLI’ın bir eklentisidir ve docker compose (boşluklu) olarak çağrılır. Docker’ı resmî paketlerden
kurduysan docker-compose-plugin paketiyle birlikte gelir. Eski rehberlerdeki komutları çalıştırırken tireyi boşlukla değiştirmen yeterlidir.
Volume, ağ ve servisler arası bağlantı
Adlandırılmış volume (mariadb_data:/var/lib/mysql), verinin konteyner silinse de korunmasını sağlar ve dosyanın sonundaki
volumes: bölümünde tanımlanır. Bind mount (./src:/var/www/html) ise sunucudaki bir klasörü doğrudan konteynere bağlar; kod
ve yapılandırma dosyaları için uygundur.
Compose, her proje için otomatik bir ağ oluşturur ve servisler birbirine servis adıyla ulaşır. Bu yüzden WordPress’in veritabanı adresi
mariadb:3306 olur; IP yazmana gerek yoktur. Veritabanı ve Redis gibi servislerin portunu dışarı açmak (ports:) gerekmez, açmaman daha güvenlidir.
Araç bu servisleri port yayınlamadan ekler.
depends_on yalnızca başlatma sırasını belirler; veritabanının gerçekten hazır olmasını beklemek için condition: service_healthy ve bir
healthcheck gerekir. Araç, MariaDB, MySQL, PostgreSQL, Redis ve MongoDB için uygun sağlık kontrolünü ekler ve onlara bağlanan servisleri buna göre bekletir.
.env dosyası ve şifreler
Compose, compose.yaml ile aynı klasördeki .env dosyasını otomatik okur ve ${DEGISKEN} ifadelerini bu değerlerle doldurur.
Şifreleri burada tutmak, compose dosyasını Git’e eklerken gizli bilgileri dışarıda bırakmanı sağlar: .env dosyasını .gitignore’a eklemeyi unutma.
Şifreler tarayıcında crypto.getRandomValues ile üretilir. Veritabanı şifresi yalnızca volume ilk kez oluşturulurken uygulanır; sonradan
.env’deki şifreyi değiştirmek mevcut veritabanının şifresini değiştirmez.
İmaj etiketleri
latest etiketi, bir gün docker compose pull sonrası beklenmedik bir ana sürüm yükseltmesine yol açabilir. Araç bu yüzden
mariadb:11, postgres:17, redis:7-alpine gibi ana sürüm etiketleri kullanır: güvenlik yamalarını alırsın ama ana sürüm sen
değiştirmedikçe sabit kalır. Ana sürüm yükseltmesinden (ör. PostgreSQL 17 → 18) önce mutlaka yedek al.
compose.yaml dosyasını nerede çalıştırırım?
Compose dosyasını çalıştırmak için Docker kurulu bir Linux sunucu yeterlidir. Krowten Docker VPS ile root erişimli kendi sunucunda
docker compose up -d diyerek bu dosyayı olduğu gibi kullanabilirsin. Tek bir konteyneri sunucu yönetmeden yayınlamak istiyorsan
Docker hosting daha pratik bir seçenektir; işletim sistemi ve güncellemeler bizde kalır.
Krowten Docker VPS ile root erişimli KVM sunucunda Docker’ı birkaç dakikada kur, bu dosyayı docker compose up -d ile çalıştır. Servis, volume ve ağ yapılandırması tamamen sende.
Docker Compose Oluşturucu
hakkında.
compose.yaml ile docker-compose.yml arasında fark var mı?+
İçerik olarak hayır. Compose her iki adı da okur; güncel belgeler compose.yaml adını önerir. İkisi aynı klasörde bulunursa compose.yaml tercih edilir.
Docker Compose dosyasında version yazmak gerekir mi?+
Hayır. Compose V2 ve Compose Specification ile version: alanı kullanılmaz; yazarsan “obsolete” uyarısı alırsın. Dosyayı doğrudan services: ile başlatabilirsin.
depends_on veritabanının hazır olmasını bekler mi?+
Tek başına beklemez, yalnızca konteynerin başlamasını bekler. Veritabanının bağlantı kabul etmesini beklemek için veritabanına healthcheck ekleyip bağımlı serviste condition: service_healthy kullanmalısın; bu araç bunu otomatik yapar.
Docker Compose ile WordPress nasıl kurulur?+
Araçta WordPress kartını ekle; MariaDB otomatik eklenir ve veritabanı değişkenleri bağlanır. compose.yaml ve .env dosyalarını aynı klasöre kaydedip docker compose up -d çalıştır, ardından tarayıcıdan sunucunun 8080 portuna git. Alan adı ve HTTPS için Caddy kartını da ekleyebilirsin.
Bunlar da işine yarar.
Hepsi ücretsiz.
Zamanlanmış görevler için cron ifadesini yaz, Türkçe açıklamasını gör.
Aracı aç ↗Güçlü Şifre OluşturucuTarayıcında üretilen, hiçbir yere gönderilmeyen güçlü şifreler.
Aracı aç ↗.htaccess ve Nginx Yönlendirme OluşturucuHTTPS, www ve 301 yönlendirmelerini .htaccess ve Nginx için yaz.
Aracı aç ↗