DOCKER HAKKINDA BİLMENİZ GEREKENLER

Docker Nedir?

Docker, uygulamaları konteyner (container) adı verilen izole ortamlarda çalıştırmaya yarayan açık kaynaklı bir konteynerleştirme platformudur.
Bu teknoloji, geliştiricilerin “bilgisayarımda çalışıyor ama sunucuda çalışmıyor” sorununu ortadan kaldırır.

Docker = Hız + Taşınabilirlik + Tutarlılık

  • Uygulamaları bağımsız paketler halinde çalıştırır.

  • Her ortamda (Windows, macOS, Linux, Cloud) aynı şekilde çalışır.

  • Sanallaştırmadan farklı olarak, işletim sistemi çekirdeğini paylaşır.

Docker’a yeni başlıyorsanız:
Introducing Docker Eğitimi


Docker Nasıl Çalışır?

Docker, geleneksel sanal makinelerden farklı olarak hypervisor yerine Docker Engine (Daemon) kullanır.
Bu motor, konteynerlerin oluşturulmasını ve yönetilmesini sağlar.

Docker Mimarisi

BileşenAçıklama
Docker EngineKonteynerleri çalıştıran çekirdek motor.
Docker ImageKonteynerin şablonu; tüm bağımlılıkları içerir.
Docker ContainerImage’in çalışan hali, yani uygulamanın canlı örneği.
DockerfileImage’in nasıl oluşturulacağını tanımlar.
Docker HubResmi ve topluluk imajlarının merkezi deposu.


Docker Nasıl Kurulur?

Docker kurulumu işletim sistemine göre değişir:

İpucu: WSL 2 desteği sayesinde Windows’ta performans oldukça yüksektir.


Docker ve Konteyner Kavramı

Konteyner, bir uygulamanın bağımlılıklarını, kütüphanelerini ve yapılandırmasını içinde barındıran taşınabilir bir pakettir.
Yani “uygulama nerede olursa olsun aynı şekilde çalışır” garantisini verir.

Docker vs. Virtual Machine

ÖzellikSanal Makine (VM)Docker Container
Boyut10–20 GB100–300 MB
Başlatma Süresi1–2 Dakika1–2 Saniye
PerformansDonanıma bağlıOS çekirdeğini paylaşır
TaşınabilirlikDüşükYüksek
İzolasyonTam sistemUygulama bazlı


Docker Nasıl Kullanılır?

Bir uygulamayı Docker’a taşımak üç adımda gerçekleşir:

Dockerfile oluşturun:

FROM node:18 WORKDIR /app COPY . . RUN npm install CMD ["npm", "start"] 


Image oluşturun:

docker build -t myapp . 


Konteyneri çalıştırın:

docker run -p 3000:3000 myapp 


Temel Docker Komutları

docker pull  # Bir imajı indirir 
docker build -t : . # Docker imajı oluşturur 
docker run -d --name myapp  # Container’ı başlatır 
docker ps # Çalışan container’ları listeler 
docker stop # Container’ı durdurur 
docker rm # Container’ı siler docker images # İmajları listeler 


Bu komutlar, Docker yönetimini hızlandırır ve günlük operasyonlarda en çok kullanılan işlemlerdir.


Docker Nerelerde Kullanılır?

AlanAçıklama
Yazılım GeliştirmeKodun her ortamda aynı çalışmasını sağlar.
CI/CD SüreçleriJenkins, GitLab CI, GitHub Actions ile otomasyon sağlar.
Mikroservis MimarileriServislerin bağımsız çalışmasını kolaylaştırır.
Bulut PlatformlarıAWS, Azure, GCP gibi ortamlarda ölçeklenebilirlik sağlar.
Yapay Zeka ve Veri BilimiAI modelleri, Jupyter ve TensorFlow ortamlarıyla entegre çalışır.

Bu alanlarda derinleşmek için:
Docker and Kubernetes Eğitimi


Docker Compose ile Çoklu Servis Yönetimi

Birden fazla konteyneri tek sistemde yönetmek için Docker Compose kullanılır:

version: '3' services: web: build: . ports: - "5000:5000" db: image: postgres 


Avantajı: Tek komutla tüm altyapıyı başlatabilirsiniz:

docker compose up 


Docker Containerization Essentials CN100 Eğitimi ile bu yapıları uygulamalı öğrenebilirsiniz.


Docker Swarm ve Kubernetes: Fark Ne?

  • Docker Swarm → Docker’ın kendi küme yönetim sistemi.

  • Kubernetes → Büyük ölçekli orkestrasyon için endüstri standardı sistem.

Docker Kubernetes Service Eğitimi bu iki teknolojiyi bir arada öğretir.


Docker ve DevOps: Mükemmel Uyum

Docker, CI/CD süreçlerinde büyük kolaylık sağlar.
Kod geliştirme, test ve dağıtım aşamaları aynı konteyner üzerinden yönetilir.

Gerçek Senaryo:

  • Geliştirici kodu Docker’da yazar.

  • Jenkins pipeline otomatik image oluşturur.

  • QA ekibi aynı image üzerinde test eder.

  • Production ortamına birebir aynı image deploy edilir.


Docker ve Yapay Zeka

Docker, yapay zeka modellerini taşınabilir servisler haline getirir.
TensorFlow, PyTorch veya Hugging Face modelleri Docker ile her ortamda hızlıca çalışabilir.


Docker Güvenliği — En İyi Uygulamalar

  1. Root olmayan kullanıcılarla çalışın.

  2. Docker Hub imajlarını doğrulayın.

  3. Secrets yönetin.

  4. Ağ izolasyonunu doğru ayarlayın.

  5. Düzenli imaj güncellemeleri yapın.

Ekstra Güvenlik Önerileri:

  • --security-opt=no-new-privileges parametresiyle ayrıcalık yükselmesini engelleyin.

  • AppArmor & Seccomp profilleri kullanarak sistem çağrılarını kısıtlayın.

  • Ayrı network kullanarak konteynerler arası izolasyon sağlayın.


Dockerfile Optimizasyon İpuçları

  • alpine gibi hafif imajlar tercih edin.

  • Gereksiz dosya ve paketleri silin.

  • Katman sayısını azaltın.

  • Cache kullanımını yönetin.

  • .dockerignore dosyası oluşturun.


Docker vs Podman

ÖzellikDockerPodman
MimariDaemon tabanlıDaemonless
Root ErişimiGerektirirRootless destekler
CLI UyumuKendi komut setiDocker CLI uyumlu
Multi-ContainerDocker Compose ilePodman Compose gerekir
GüvenlikGeniş kullanım, riskli olabilirDaha güvenli varsayılan yapı


Docker Hata Çözümü (Troubleshooting)

En yaygın Docker hataları ve çözümleri:

  • “Port already allocated” → Farklı port kullanın veya docker ps ile mevcut container’ı durdurun.

  • “Cannot connect to Docker daemon” → Docker Engine’in çalıştığından emin olun.

  • “Permission denied” → Root yetkisi olmadan çalıştırıyorsanız sudo ekleyin veya user group ayarlarını düzenleyin.


Docker Neden Bu Kadar Önemli?

Docker, modern yazılım ekosisteminin temel taşıdır.
Geliştiriciler için “her yerde aynı sonuç”, DevOps ekipleri için “hız ve kontrol” anlamına gelir.

Özetle: Docker sadece bir araç değil, dijital dönüşümün altyapı omurgasıdır.
Eğer hâlâ öğrenmediyseniz, başlamak için en doğru zamandasınız.


İlgili Eğitimler

Eğitim AdıLink
Introducing DockerGörüntüle
Docker Kubernetes ServiceGörüntüle
Docker and KubernetesGörüntüle
Docker Containerization Essentials CN100Görüntüle

 




Eğitimlerle ilgili bilgi almak ve diğer tüm sorularınız için bize ulaşın!

İlgili Eğitimler

Son Blog Yazılarımız

Yakın tarihte açılacak eğitimler

Sitemizi kullanarak çerezlere (cookie) izin vermektesiniz. Detaylı bilgi için Çerez Politika'mızı inceleyebilirsiniz.