İçeriğe geç

Rehber

Docker ile Web Uygulaması Dağıtımı: Temel Kavramlar

Docker konteynerlerinin ne olduğunu, geleneksel sunucu dağıtımından farkını ve web uygulamalarını konteynerleştirmenin avantajlarını anlatıyoruz.

2 dk okumaOrta seviye
Docker ile Web Uygulaması Dağıtımı: Temel Kavramlar — editoryal kapak görseli

Docker, bir uygulamayı ve tüm bağımlılıklarını (kütüphaneler, sistem araçları, çalışma zamanı) tek bir taşınabilir birim olan konteyner içinde paketlemenizi sağlar. Bu, 'benim bilgisayarımda çalışıyordu' sorununu büyük ölçüde ortadan kaldırır.

Bir Docker konteynerinin uygulama, bağımlılıklar ve çalışma zamanını tek pakette taşıması.
Bir Docker konteynerinin uygulama, bağımlılıklar ve çalışma zamanını tek pakette taşıması.

Konteyner ile sanal makine farkı

Sanal makineler, her biri kendi işletim sistemi çekirdeğini çalıştırdığı için görece ağırdır ve başlatılması dakikalar sürebilir. Konteynerler ise ana makinenin işletim sistemi çekirdeğini paylaşır, bu da onları çok daha hafif ve saniyeler içinde başlatılabilir hale getirir.

Temel kavramlar

  • İmaj (Image): uygulamanızın ve bağımlılıklarının değişmez, salt okunur bir anlık görüntüsü.
  • Konteyner (Container): bir imajın çalışan, canlı bir örneği.
  • Dockerfile: bir imajın nasıl oluşturulacağını adım adım tanımlayan metin dosyası.
  • Docker Compose: birden fazla konteyneri (örneğin web uygulaması + veritabanı) birlikte tanımlayıp yönetmeyi sağlayan araç.

Web geliştiriciler için pratik faydalar

  • Geliştirme, test ve üretim ortamlarının birebir aynı yapılandırmayla çalışmasını sağlar; ortamlar arası tutarsızlık kaynaklı hataları azaltır.
  • Yeni bir ekip üyesinin geliştirme ortamını kurması, karmaşık kurulum adımları yerine tek bir komutla mümkün hale gelir.
  • Farklı projelerin farklı bağımlılık sürümlerine (örneğin farklı Node.js sürümleri) ihtiyaç duyması durumunda çakışmaları önler.

Başlarken dikkat edilmesi gerekenler

İmaj boyutunu küçük tutmak için gereksiz dosyaları ve geliştirme bağımlılıklarını üretim imajına dahil etmekten kaçının; çok aşamalı derleme (multi-stage build) bu konuda yaygın kullanılan bir tekniktir. Hassas bilgileri (API anahtarları, veritabanı şifreleri) Dockerfile içine doğrudan yazmak yerine ortam değişkenleri veya sır yönetim araçlarıyla yönetin.

Özet

Docker, uygulamaları taşınabilir ve tutarlı konteynerler halinde paketleyerek ortamlar arası tutarsızlığı azaltır. Küçük imaj boyutu ve güvenli sır yönetimi, üretim ortamında dikkat edilmesi gereken temel pratiklerdir.

Kategoriler

Etiketler

Kaynaklar

  1. Docker Docs — Başlangıç rehberi

Paylaş