Docker Nedir?
Docker, uygulamaları ve bağımlılıklarını izole bir ortamda çalıştırmaya olanak tanıyan bir konteynerleştirme platformudur. Konteynerler, bir uygulamanın tüm bileşenlerini içeren hafif sanal ortamlardır. Bu sayede, uygulamalar farklı host’larda tutarlı bir şekilde çalıştırılabilir. PHP, web geliştirme süreçlerinde yaygın olarak kullanılan bir dil olduğundan, Docker ile PHP uygulamalarını yönetmek ve dağıtmak oldukça önemlidir.
Resmi Docker İmajları
Docker, birçok popüler programlama dili ve framework için resmi imajlar sunar. PHP için de resmi Docker imajları mevcuttur. Bu imajlar, PHP’nin belli bir sürümü ve yaygın kullanılan uzantıları ile birlikte gelir. PHP 7.4 için resmi bir Docker imajı kullanmak, kurulum sürecini büyük ölçüde kolaylaştırır.
PHP 7.4 resmi Docker imajı `php:7.4` olarak ana Docker Hub’da bulunmaktadır. Bu imaj, PHP’yi kurulum ve yapılandırma işlemlerini hızlandıran ve standart bir PHP ortamı sunan temel bir imajdır.
Docker ile PHP 7.4 İmajı Kullanma
Resmi Docker imajını kullanmanın en basit yolu, terminalde Docker komutlarını kullanarak bir konteyner oluşturmaktır. Aşağıdaki adımlar, PHP 7.4’ü içeren bir Docker konteyneri oluşturmayı ve çalıştırmayı göstermektedir.
1. Docker İmajını Çekme: İlk olarak, terminalde aşağıdaki komut ile PHP 7.4 imajını çekmek gerekir.
“`bash
docker pull php:7.4
“`
2. Konteyneri Çalıştırma: Çekilen imaj ile bir konteyner oluşturmak ve çalıştırmak için aşağıdaki komut kullanılabilir.
“`bash
docker run -it –name my-php-app php:7.4 bash
“`
3. PHP’nin Kurulumunu Doğrulama: Kontrol amaçlı olarak, konteyner içinde PHP sürümünü kontrol etmek için şu komut çalıştırılabilir.
“`bash
php -v
“`
Dockerfile ile Özel İmaj Oluşturma
Proje gereksinimlerine göre özel bir Docker imajı oluşturmak, esneklik sağlar. Bu işlem, bir `Dockerfile` oluşturularak gerçekleştirilir. Dockerfile, konteynerin nasıl yapılandırılacağını ve hangi bileşenlerin ekleneceğini belirleyen bir betiktir. Aşağıdaki aşamalar, PHP 7.4 kullanarak bir Dockerfile oluşturmayı ve özelleştirmeyi göstermektedir.
1. Dockerfile Oluşturma: Proje dizininde `Dockerfile` adında bir dosya oluşturulur. İçeriği aşağıdaki gibi olabilir.
“`Dockerfile
FROM php:7.4
Gerekli uzantıları yükleyin
RUN docker-php-ext-install pdo pdo_mysql
Çalışma dizinini ayarlayın
WORKDIR /var/www/html
Uygulama dosyalarını kopyalayın
COPY . .
Geçerli bağlantı noktası
EXPOSE 80
PHP’nin geleneği ile çalıştırılması
CMD [“php”, “-S”, “0.0.0.0:80”]
“`
2. Docker İmajını Oluşturma: Terminalde aşağıdaki komut çalıştırılarak, bir Docker imajı oluşturulur.
“`bash
docker build -t my-php-app .
“`
3. Konteyneri Çalıştırma: Oluşturulan Docker imajı ile bir konteyner başlatmak için şu komut kullanılır:
“`bash
docker run -d -p 8080:80 my-php-app
“`
PHP Uygulamalarını Yönetme
PHP uygulamalarını Docker konteynerlerinde çalıştırmak, geliştirme ve dağıtım süreçlerini kolaylaştırır. Docker, uygulamanın çalışma ortamını izole ederek bağımlılık problemlerini en aza indirir. Geliştiriciler, farklı projeleri farklı sürümlerde ve yapılandırmalarda çalıştırarak esnekliğe sahip olurlar.
Veritabanı ile Entegrasyon
Çoğu PHP uygulaması bir veritabanı ile entegre çalışır. MySQL veya PostgreSQL gibi veritabanları, PHP ile birlikte sıkça tercih edilir. Docker Compose aracılığıyla bu veritabanları, PHP konteynerleri ile kolaylıkla entegre edilebilir. Böylece, veritabanı ve uygulama konteynerleri birlikte çalıştırılabilir.
Docker Compose ile bir veritabanı ve PHP uygulaması oluşturmak için, aşağıdaki gibi bir `docker-compose.yml` dosyası oluşturulabilir:
“`yaml
version: ‘3.7’
services:
app:
build: .
ports:
– “8080:80”
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: mydb
“`
Geliştirme ve Üretim Ortamları Arasındaki Farklar
Geliştirme ve üretim ortamları için yapılandırmalar arasında bazı farklılıklar bulunabilir. Geliştirme ortamında daha fazla hata ayıklama yapmak için gerekli araçlar eklenebilirken, üretim ortamında performansa yönelik optimizasyonlar yapılmalıdır. Docker kullanılarak bu ortamların her biri için ayrı imajlar oluşturulabilir.
Docker, PHP geliştirme süreçlerini kolaylaştırarak uygulama yönetimini daha verimli hale getirir. Resmi imajların ve kişisel Dockerfile’ların kullanımı, geliştiricilere büyük esneklik sunar. PHP 7.4 kurulumu, bu yapıların kullanımının başlangıcını temsil eder ve geliştiricilerin hızlı bir şekilde uygulama geliştirmesine olanak tanır.