Docker Üzerinde WordPress ve MySQL Container Bağlantısı

Docker, modern yazılım geliştirme süreçlerinde container teknolojisiyle uygulama dağıtımını devrimleştirmiştir.

Docker, modern yazılım geliştirme süreçlerinde container teknolojisiyle uygulama dağıtımını devrimleştirmiştir. Özellikle dinamik web uygulamaları gibi WordPress siteleri için, veritabanı katmanını (MySQL) ayrı container’larda çalıştırmak, ortam izolasyonu sağlar, bağımlılık çatışmalarını önler ve ölçeklenebilirlik kazandırır. Bu rehberde, Docker Compose kullanarak WordPress ve MySQL container’larını birbirine bağlayarak tam bir stack oluşturmayı adım adım inceleyeceğiz. Bu yaklaşım, geliştirme ortamından üretim sunucusuna kadar tutarlılık sağlar ve manuel kurulum zahmetini ortadan kaldırır.

Docker Ortamının Hazırlanması

Docker tabanlı bir WordPress + MySQL kurulumu için öncelikle sisteminize Docker ve Docker Compose’un doğru şekilde yüklenmesi şarttır. Bu araçlar, container’ların oluşturulmasını, yönetilmesini ve orkestrasyonunu kolaylaştırır. Linux tabanlı sistemlerde (örneğin Ubuntu), resmi Docker depolarından kurulum yaparak en güncel sürümlere erişebilirsiniz. Kurulum sonrası, Docker servisini başlatın ve mevcut kullanıcıyı docker grubuna ekleyerek sudo gereksinimini ortadan kaldırın. Bu adımlar, sorunsuz bir çalışma ortamı için temel oluşturur.

Ayrıca, proje için ayrı bir dizin oluşturun ve gerekli dosya izinlerini ayarlayın. Volumes ile kalıcı veri depolama alanları tanımlayarak veritabanı verilerinin kaybolmasını önleyin. Örnek proje yapısı şu şekilde olabilir: bir kök dizinde docker-compose.yml dosyası, WordPress için wp-content klasörü ve MySQL için veri volume’u. Bu hazırlık aşaması, sonraki bağlantı işlemlerini hızlandırır ve hataları minimize eder. Toplamda, bu bölüm yaklaşık 10-15 dakika sürer ve sistem kaynaklarını optimize eder.

  • Docker kurulum komutu: curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
  • Docker Compose yükleme: sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
  • Proje dizini: mkdir wordpress-docker && cd wordpress-docker

Docker Compose Dosyasının Yapılandırılması

WordPress Servisi Tanımlaması

docker-compose.yml dosyasında WordPress servisini tanımlarken, resmi WordPress imajını (wordpress:php8.1-apache gibi) kullanın. Bu servis, MySQL veritabanına bağlanmak için environment değişkenlerini (WORDPRESS_DB_HOST, WORDPRESS_DB_NAME vb.) içermelidir. Ports bölümünde 8080:80 eşleştirmesi yaparak container’ı ana makineye açın. Volumes ile wp-content dizinini bağlayarak tema ve eklenti değişikliklerini kalıcı hale getirin. Bu yapılandırma, WordPress’in otomatik veritabanı bağlantısını sağlar ve manuel wp-config.php düzenlemesini gereksiz kılar.

MySQL Servisi ve Bağlantı Ayarları

MySQL servisi için mysql:8.0 imajını seçin ve root şifresi, veritabanı adı gibi environment değişkenlerini belirleyin (MYSQL_ROOT_PASSWORD, MYSQL_DATABASE). WORDPRESS_DB_HOST olarak ‘db’ alias’ını kullanın ki Docker’ın dahili DNS’i otomatik çözümlesin. Volumes ile /var/lib/mysql yolunu haritalayın. Networks bölümünde ortak bir ağ tanımlayarak servisler arası iletişimi güvence altına alın. Bu ayarlar, bağlantı gecikmelerini önler ve yüksek performanslı bir stack oluşturur. Örnek YAML snippet’i şu şekildedir:

version: '3.8'
services:
  db:
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: wordpress
  wordpress:
    image: wordpress:php8.1-apache
    volumes:
      - ./wp-content:/var/www/html/wp-content
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: example
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}

Bu dosya, iki container’ı kusursuz entegre eder ve yeniden başlatmalarda verileri korur.

Containerları Başlatma ve Bağlantı Doğrulama

Kurulum tamamlandıktan sonra, docker-compose up -d komutuyla servisleri arka planda başlatın. Logları docker-compose logs ile izleyin ki olası bağlantı hatalarını (örneğin şifre uyuşmazlığı) erken tespit edin. Tarayıcıda localhost:8080 adresine giderek WordPress kurulum sihirbazını çalıştırın; veritabanı bağlantısı otomatik gerçekleşecektir. Bu aşamada, MySQL’e docker-compose exec db mysql -u root -p ile bağlanıp veritabanını sorgulayın.

Bağlantı Testi ve Optimizasyon

Bağlantıyı doğrulamak için WordPress admin panelinden veritabanı durumunu kontrol edin veya phpMyAdmin gibi bir araç ekleyin (ek servis olarak). Performansı artırmak adına, MySQL’e max_connections ve innodb_buffer_pool_size gibi parametreleri my.cnf ile ayarlayın. Güvenlik için, production’da environment değişkenlerini .env dosyasına taşıyın ve exposed portları firewall ile kısıtlayın. Bu adımlar, stack’in güvenilirliğini artırır ve günlük trafiğe hazır hale getirir.

Sorun giderme ipuçları: Container yeniden başlatma (docker-compose restart), volume temizleme veya imaj güncelleme. Bu işlemlerle, geliştiriciler hızlı iterasyon yapabilir.

Sonuç olarak, Docker Compose ile WordPress ve MySQL bağlantısı, standartlaştırılmış, taşınabilir ve verimli bir çözüm sunar. Bu yöntemle, birden fazla ortamda (geliştirme, test, üretim) aynı konfigürasyonu kullanabilir, deployment süresini dakikalara indirebilirsiniz. Pratiğe dökerek kendi projelerinizi güçlendirin ve container orkestrasyonunun gücünden faydalanın.

Yazar: Lorem
çerik: 635 kelime
Okuma Süresi: 5 dakika
Zaman: 1 ay önce
Yayım: 24-02-2026
Güncelleme: 24-02-2026