PHP Geliştiricileri İçin Docker: Kolay ve Basit Bir Anlatım
Merhaba! Ben Fatih Soysal ve bu yazıda sizlere PHP geliştirme sürecinizi kolaylaştıracak güçlü bir araç olan Docker’ı mümkün olan en basit şekilde anlatacağım. Özellikle yeni başlayanlar için, Docker’ın gizemini çözmenize yardımcı olmayı hedefliyorum.
Docker Nedir?
Docker, uygulamalarınızı ve bunların bağımlılıklarını (veritabanı, web sunucusu vb.) yüksek düzeyde izole edilmiş konteynerler içinde çalıştırmanıza olanak tanıyan bir platformdur. Başka bir deyişle, uygulamanızın çalışması için gereken her şeyi tek bir paket içinde tutar. Bu sayede, geliştirme, test ve üretim ortamlarınız arasında tutarlılık sağlarsınız. Örneğin, geliştirme makinanızda çalışan bir uygulama, aynı Docker konteyneri ile üretim sunucusunda da sorunsuz çalışacaktır. Bu durum, geliştirme sürecinde karşılaşabileceğiniz ortam farklılıklarından kaynaklanan sorunları ortadan kaldırır.
Neden PHP Geliştiricileri Docker Kullanmalı?
PHP geliştirmede Docker kullanmanın birçok avantajı vardır. Bunlardan bazıları şunlardır:
- Ortam Tutarsızlığının Önlenmesi: Geliştirme, test ve üretim ortamları arasında tutarlılık sağlar. Bu sayede, bir ortamda çalışan kodun diğer ortamlarda da sorunsuz çalışacağından emin olursunuz.
- Bağımlılık Yönetimi: Uygulamanızın tüm bağımlılıklarını (PHP sürümü, veritabanı, web sunucusu vb.) tek bir yerde yönetir. Bu, çalışma zamanı hatalarının önlenmesine yardımcı olur. Ayrıca farklı projeler için farklı bağımlılıklara sahip olmak, herhangi bir çakışma riskini ortadan kaldırır.
- Kolay Kurulum ve Yayınlama: Uygulamanızı kolayca kurar ve yayınlarsınız. Docker konteynerleri taşınabilirdir ve farklı platformlarda çalışabilir.
- Kaynak Yönetimi: Kaynakları daha verimli kullanır. Her uygulama kendi izole edilmiş konteynerinde çalıştığı için, kaynaklar daha etkin bir şekilde kullanılır.
Docker Kurulumu
Docker’ı kurmak oldukça basittir. İlk olarak, Docker resmi web sitesinden işletim sisteminize uygun kurulum dosyasını indirip kurulum adımlarını izleyin. Kurulum tamamlandıktan sonra Docker’ın çalıştığından emin olmak için komut satırından docker version komutunu çalıştırın. Çıktı, kurulu Docker sürümünü gösterecektir.
Basit Bir PHP Projesi İçin Dockerfile Oluşturma
Şimdi, basit bir PHP projesi için bir Dockerfile oluşturalım. Dockerfile, Docker’ın bir konteyner oluşturmak için kullanacağı talimatları içeren bir dosyadır. Aşağıdaki Dockerfile, Apache web sunucusu ve PHP’nin kurulumunu içerir:
FROM php:8.1-apache
RUN docker-php-ext-install pdo pdo_mysql
COPY . /var/www/html
Bu Dockerfile, PHP 8.1 ve Apache ile gelen bir temel image’dan başlar. Ardından, PDO ve PDO_MySQL uzantılarını yükler. Son olarak, projenizin dosyalarını /var/www/html dizinine kopyalar. Bu dosyayı Dockerfile adıyla kaydedin.
Docker Image Oluşturma ve Çalıştırma
Dockerfile’ı oluşturduktan sonra, bir image oluşturmak için aşağıdaki komutu çalıştırın:
docker build -t my-php-app .
Bu komut, my-php-app adlı bir image oluşturur. Nokta (.), Dockerfile’ın bulunduğu dizini belirtir. Image oluşturulduktan sonra, aşağıdaki komut ile konteyneri çalıştırın:
docker run -d -p 8080:80 my-php-app
Bu komut, my-php-app image’ından bir konteyner oluşturur ve arka planda (-d) çalıştırır. -p 8080:80 seçeneği, konteynerin 80 numaralı portunu host makinanızın 8080 numaralı portuna map eder. Artık projenizi tarayıcınızda http://localhost:8080 adresinden görüntüleyebilirsiniz.
Docker Compose ile Daha Gelişmiş Kullanım
Daha büyük ve karmaşık projeler için, Docker Compose kullanmanızı öneririm. Docker Compose, birden fazla konteyneri (örneğin, web sunucusu, veritabanı vb.) tek bir dosya ile yönetmenizi sağlar. Bu, sisteminizi daha organize ve yönetilebilir hale getirir. Daha fazla bilgi için Docker Compose dokümantasyonuna göz atabilirsiniz.
Umarım bu makale, PHP geliştiricileri için Docker’ı daha anlaşılır hale getirmiştir. Daha fazla bilgi ve destek için fatihsoysal.com sitesini ziyaret edebilirsiniz. Herhangi bir sorunuz varsa, lütfen yorumlarda belirtmekten çekinmeyin!
#Etiketler
#Docker #PHP #DockerKurulumu #PHPDocker #DockerCompose #Container #Konteyner #Geliştirici #Başlangıç #Rehber
