Back to Blog

Her Şey Tastamam : Docker

YS
Yunus Saygınlı
February 10, 2026
5 min read
Her Şey Tastamam : Docker

Docker Nedir? Yazılım Dünyasının "Konteyner" Devrimi

Selamlar! Bugün yazılım dünyasında bir dönemi kapatıp yeni bir çağ açan, benim de projelerimde vazgeçilmezim olan bir teknolojiden,Docker teknolojisinden bahsedeceğim. Eğer siz de benim gibi yazılım geliştirirken "Ama benim bilgisayarımda çalışıyordu, sunucuda neden hata verdi?" cümlesini en az bir kere kurduysanız, doğru yerdesiniz. Docker, tam olarak bu sorunu tarihe gömmek için var.

Docker Tam Olarak Ne İşe Yarar?

En basit haliyle Docker; geliştirdiğiniz uygulamayı, uygulamanın çalışması için gereken kütüphaneleri, bağımlılıkları ve ayarları tek bir paket (konteyner) haline getiren bir platformdur.

Eskiden bir uygulamayı sunucuya atmak tam bir işkenceydi. Sunucudaki Java sürümü farklıdır, Node.js modülleri çakışır, işletim sistemi uyumsuzdur... Docker ile bu dertler bitiyor. Siz uygulamanızı bir Konteyner içine hapsediyorsunuz ve bu konteyner, Docker yüklü olan her bilgisayarda (ister Windows, ister Linux, ister MacOS olsun) tıpatıp aynı şekilde çalışıyor.

Sanal Makinelerden Farkı Nedir?

Belki aklınıza * "E biz bunu Sanal Makinelerle (Virtual Machine) de yapıyorduk?" * sorusu gelebilir. Evet yapıyorduk ama çok ağır bedeller ödüyorduk. Sanal makineler, her uygulama için koca bir işletim sistemini (OS) sırtında taşır. Bu da gigabytelarca boyut ve hantal bir yapı demek.

Docker ise işletim sistemini sanallaştırmaz, işletim sistemi çekirdeğini (kernel) paylaşır . Bu sayede:

  • Çok daha hafiftir (Megabytelar seviyesinde).
  • Saniyeler içinde açılır.
  • Sistem kaynaklarını (RAM, CPU) çok daha verimli kullanır.

Neden Docker Kullanmalısınız? Faydaları Neler?

Benim deneyimlerime göre Docker'ın hayat kurtaran 4 temel faydası var:

  • Tutarlılık (Consistency): Geliştirme ortamınız ile canlı (production) ortamınız birebir aynı olur. "Dependency Hell" (Bağımlılık Cehennemi) dediğimiz olay yaşanmaz.
  • İzolasyon: Bir projenizde Python 3.8, diğerinde Python 2.7 kullanmanız gerekebilir. Docker ile bu iki proje birbirini asla görmez ve etkilemez. Her biri kendi fanusunda yaşar.
  • Taşınabilirlik: Hazırladığınız konteyneri ister kendi sunucunuza, ister AWS'ye, ister Google Cloud'a atın; hiçbir ayar değiştirmeden çalışır.
  • Mikroservis Mimarisi: Büyük ve hantal bir yapıyı (Monolith), küçük ve bağımsız parçalara bölüp yönetmek Docker ile çocuk oyuncağıdır.

Temel Kavramlar: Image ve Container

Docker dünyasına girdiğinizde sıkça duyacağınız iki terimi açıklayayım:

  • Image (İmaj): Bunu bir yemek tarifi veya bir CD kalıbı gibi düşünebilirsiniz. Uygulamanızın donmuş, salt okunur halidir. İçinde kodlarınız ve kütüphaneleriniz vardır.
  • Container (Konteyner): İmajın çalışan halidir. Tariften (Image) yapılan kekin kendisidir (Container). Bir imajdan yüzlerce konteyner oluşturabilirsiniz.

Sonuç

Kısacası Docker, modern yazılım süreçlerinin olmazsa olmazıdır. Projelerimde dağıtım (deployment) süreçlerini otomatize ederken veya yeni bir teknoloji denerken bilgisayarımı kirletmemek için her zaman Docker kullanıyorum.

Eğer daha fazla teknik detay öğrenmek ve kurulum yapmak isterseniz Docker Resmi Dokümantasyonu sayfasını inceleyebilirsiniz.

Bir sonraki yazımda görüşmek üzere, kodla kalın!