Docker, bir uygulamayı çalışması için gereken her şeyle (kod, kütüphaneler, ayarlar) birlikte tek bir pakete koyup, her yerde aynı şekilde çalıştırmanı sağlayan bir araçtır. Bu pakete konteyner (container) denir.
Hangi sorunu çözer?
Klasik bir dert: kod senin bilgisayarında çalışır ama arkadaşının ya da sunucunun bilgisayarında çalışmaz — çünkü sürümler veya ayarlar farklıdır. Buna ‘benim makinemde çalışıyordu’ sorunu denir. Docker, uygulamayı ortamıyla birlikte paketlediği için bu sorunu ortadan kaldırır.
Konteyner ile sanal makine farkı
Sanal makineler koca bir işletim sistemini taklit eder; ağır ve yavaştır. Konteynerler ise işletim sisteminin çekirdeğini paylaşır; çok daha hafif ve hızlıdır. Bir bilgisayarda onlarca konteyner rahatça çalışabilir.
Temel kavramlar
- Image (İmaj): Uygulamanın dondurulmuş şablonu — bir kalıp gibi.
- Container (Konteyner): İmajdan üretilen, çalışan kopya.
- Dockerfile: İmajın nasıl oluşturulacağını anlatan tarif dosyası.
Basit örnek komutlar
# Bir imaj indir ve çalıştır:
docker run hello-world
# Çalışan konteynerleri listele:
docker ps
Neden popüler?
Docker; tutarlılık, hız ve taşınabilirlik sağladığı için modern yazılım geliştirme ve dağıtımının (DevOps) temel taşlarından biridir. Backend ve DevOps'a ilgi duyuyorsan öğrenmen çok değerlidir.