Skip to main content
DevOps

Docker Nedir? Konteyner Teknolojisi Başlangıç Rehberi

Mart 24, 2026 3 dk okuma 11 views Raw
Docker konteyner teknolojisi ve yazılım geliştirme
İçindekiler

Docker Nedir?

Docker, uygulamaları konteyner adı verilen izole ortamlarda paketlemeyi, dağıtmayı ve çalıştırmayı sağlayan açık kaynaklı bir platformdur. 2013 yılında Solomon Hykes tarafından geliştirilen Docker, yazılım dünyasında devrim niteliğinde bir değişim yaratmış ve modern DevOps pratiklerinin temel taşı haline gelmiştir.

Docker'ın temel felsefesi basittir: "Benim bilgisayarımda çalışıyor" problemini ortadan kaldırmak. Bir uygulama ve tüm bağımlılıkları tek bir konteyner içinde paketlenerek, geliştirme ortamından üretim ortamına kadar tutarlı bir şekilde çalışması garanti edilir. Bu yaklaşım, yazılım dağıtım süreçlerini dramatik biçimde basitleştirir.

Konteyner ve Sanal Makine Farkı

Konteynerler sıklıkla sanal makinelerle karıştırılır, ancak aralarında temel farklar vardır. Sanal makineler, hypervisor üzerinde tam bir işletim sistemi çalıştırır ve her VM kendi kernel'ına sahiptir. Bu durum gigabaytlarca disk alanı ve önemli miktarda bellek tüketir. Başlatma süreleri dakikalar alabilir.

Konteynerler ise host işletim sisteminin kernel'ını paylaşır ve yalnızca uygulamanın çalışması için gereken dosyaları içerir. Bu sayede megabaytlar düzeyinde boyuta sahip olabilir ve saniyeler içinde başlatılabilir. Bir sunucuda birkaç sanal makine çalıştırılabilirken, aynı sunucuda yüzlerce konteyner çalıştırılabilir. Bu verimlilik farkı, Docker'ın hızla yaygınlaşmasının temel nedenidir.

Docker'ın Temel Kavramları

Docker Image

Docker image, bir konteynerin oluşturulması için gereken tüm talimatları ve dosyaları içeren salt okunur bir şablondur. Image'lar katmanlı bir yapıya sahiptir ve her katman bir önceki katmanın üzerine inşa edilir. Bu katmanlı mimari, depolama alanını verimli kullanır ve image oluşturma sürecini hızlandırır. Docker Hub üzerinde binlerce hazır image bulunmaktadır.

Docker Container

Container, bir image'ın çalışan örneğidir. Bir image'dan birden fazla container oluşturulabilir ve her container birbirinden izole çalışır. Container'lar başlatılabilir, durdurulabilir, taşınabilir ve silinebilir. Hafif yapıları sayesinde geliştirme ve test süreçlerinde hızlı iterasyona olanak tanır.

Dockerfile

Dockerfile, bir Docker image'ının nasıl oluşturulacağını tanımlayan metin tabanlı bir talimat dosyasıdır. Base image seçimi, bağımlılıkların yüklenmesi, uygulama kodunun kopyalanması ve çalıştırma komutları Dockerfile içinde belirtilir. İyi yazılmış bir Dockerfile, image boyutunu minimize eder ve güvenliği artırır.

Docker Compose

Gerçek dünya uygulamaları genellikle birden fazla servisten oluşur: web sunucusu, veritabanı, önbellek, mesaj kuyruğu gibi. Docker Compose, çok konteynerli uygulamaları tek bir YAML dosyası ile tanımlamayı ve yönetmeyi sağlar. Tek bir komutla tüm servisleri başlatabilir, durdurabilir ve izleyebilirsiniz.

Docker Compose özellikle geliştirme ortamlarında büyük kolaylık sağlar. Yeni bir geliştirici ekibe katıldığında, tek yapması gereken docker-compose up komutunu çalıştırmaktır. Tüm bağımlılıklar otomatik olarak indirilir ve yapılandırılır. Bu, onboarding süresini saatlerden dakikalara indirir.

Docker'ın Pratik Kullanım Alanları

Geliştirme Ortamı Standardizasyonu

Ekip üyelerinin farklı işletim sistemleri ve yapılandırmaları kullanması sıkça sorunlara neden olur. Docker ile geliştirme ortamı standartlaştırılır. Her geliştirici aynı konteyner ortamında çalışır ve ortam farklılıklarından kaynaklanan hatalar ortadan kalkar.

CI/CD Pipeline Entegrasyonu

Docker, sürekli entegrasyon ve sürekli dağıtım süreçlerinin temelini oluşturur. Her commit'te otomatik olarak Docker image'ı oluşturulur, testler çalıştırılır ve başarılı olan image'lar container registry'ye gönderilir. Kubernetes veya Docker Swarm gibi orkestrasyon araçları ile bu image'lar üretim ortamına dağıtılır.

Mikroservis Mimarisi

Docker, mikroservis mimarisinin doğal tamamlayıcısıdır. Her mikroservis kendi konteynerinde çalışır, bağımsız olarak ölçeklenebilir ve güncellenebilir. Servisler arası iletişim Docker network'leri üzerinden gerçekleşir. Bu yapı, büyük ve karmaşık uygulamaların yönetilmesini kolaylaştırır.

Docker Güvenliği

Docker kullanırken güvenlik konularına dikkat etmek gerekir. Resmi ve güvenilir base image'lar kullanın, image'larınızı düzenli olarak güvenlik taramalarından geçirin ve konteynerleri root yetkisi olmadan çalıştırın. Docker Bench Security gibi araçlar ile Docker yapılandırmanızın güvenlik standartlarına uygunluğunu kontrol edebilirsiniz.

Sonuç

Docker, modern yazılım geliştirme ve dağıtım süreçlerinin vazgeçilmez bir aracıdır. Konteyner teknolojisi sayesinde uygulamalar daha taşınabilir, ölçeklenebilir ve yönetilebilir hale gelir. Geliştirmeden üretime kadar tüm süreçlerde tutarlılık sağlayan Docker, DevOps kültürünün temel yapı taşıdır. Ekolsoft olarak projelerimizde Docker ve konteyner teknolojilerini aktif olarak kullanıyor, müşterilerimize modern ve ölçeklenebilir altyapı çözümleri sunuyoruz.

Bu yazıyı paylaş