DOCKER EĞİTİMİ
Docker Eğitimi, uygulamaları izole, taşınabilir ve tekrar üretilebilir şekilde paketlemeyi öğretir. Ekipler bu sayede geliştirme ortamı ile canlı ortam arasındaki farkları azaltır, teslimat süreçlerini daha güvenli ve öngörülebilir hale getirir.
Eğitim boyunca container mantığını, image yönetimini, ağ ve depolama yapılarını uygulamalı örneklerle ele alırız. Günün sonunda ekip, Docker tabanlı çalışma standardı oluşturarak proje yaşam döngüsünü daha hızlı ve kontrollü yönetebilir.
Katılımcı Profili
Docker Eğitimi aşağıdaki rollerde çalışan ekipler için uygundur:
- Backend geliştiriciler: Servisleri taşınabilir çalıştırma becerisi
- Frontend geliştiriciler: Yerel ortam standardını kolaylaştırma
- DevOps mühendisleri: Dağıtım süreçlerini düzenleme ve otomasyon
- Test mühendisleri: İzole test ortamlarını hızlı kurma
- Sistem yöneticileri: Container altyapısını izleme ve yönetme
Ön Gereklilikler
Docker Eğitimi için aşağıdaki temel bilgi ve araçlar önerilir:
- Linux komut satırında temel dosya ve süreç yönetimi
- Uygulama çalıştırma ve bağımlılık mantığına aşinalık
- Git ile temel kod versiyonlama deneyimi
- Yerel makinede Docker Desktop veya Docker Engine kurulumu
- Temel ağ kavramları: port, IP, DNS mantığı
Süresi ve Tarihi
Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.
Kazanımlar
Bu eğitim sonunda ekip, Docker ekosistemini güvenli ve sürdürülebilir şekilde kullanabilir:
- Container ve image kavramlarını doğru senaryolarda konumlandırma
- Dockerfile ile tekrar üretilebilir image oluşturma yaklaşımı
- Network, volume ve environment yönetimini standardize etme
- Build performansı, cache kullanımı ve katman optimizasyonu uygulama
- Loglama, debug ve sorun giderme için pratik bir akış kurma
- Güvenlik kontrolleri ve en iyi pratiklerle riskleri azaltma
- Çok servisli yapılar için Compose kullanarak süreçleri sadeleştirme
- Yerel geliştirme ve CI/CD süreçlerine Docker entegrasyonunu planlama
Docker Eğitimi Konuları
1. Docker Eğitimi - Container Temelleri
- Container yaklaşımının problem çözdüğü alanları tanıma
- Image, container ve registry kavramları ile doğru terminoloji
- Temel komutlarla container çalıştırma ve yaşam döngüsü yönetimi
- Uygulama bağımlılıklarını izole ederek tutarlı çalışma düzeni
- Basit senaryolarda container port yönlendirmesi ve erişim
2. Docker Engine ve Docker Desktop Kullanımı
- Docker Desktop arayüzü üzerinden temel kullanım alışkanlığı
- Docker Engine mimarisini anlayarak davranışları yorumlama
- Daemon yapılandırması ile kaynak ve güvenlik ayarlarını düzenleme
- CLI ile günlük akışları hızlandıran pratik komut seti
- Context ve environment ayarlarıyla farklı hedeflere çalışma
3. Image Yönetimi ve Registry Süreçleri
- Image tag stratejisiyle sürümleme disiplinini oturtma
- Registry mantığını öğrenerek paylaşım ve dağıtımı kolaylaştırma
- Pull, push ve prune işlemleriyle image yaşam döngüsünü kontrol etme
- Temel güvenlik yaklaşımlarıyla image kaynağını doğrulama
- Yerel cache yönetimi ile disk kullanımını dengede tutma
4. Dockerfile ile Uygulama Paketleme
- Dockerfile yapısını öğrenerek okunabilir dosyalar hazırlama
- Katman mantığı ile build süreçlerini hızlandırma ve düzenleme
- WORKDIR, COPY, RUN ve CMD kullanarak çalışma akışı oluşturma
- Environment değişkenleriyle konfigürasyonu esnek hale getirme
- Geliştirme ve canlı ortam için farklı hedeflerle build yaklaşımı
5. Multi-stage Build ve Derleme Akışları
- Multi-stage build yaklaşımını kullanarak image boyutunu küçültme
- Derleme ve çalışma bağımlılıklarını ayırarak daha güvenli yapı kurma
- Build cache stratejisi ile tekrar eden işleri azaltma
- Uygulama türlerine göre örnek multi-stage senaryoları uygulama
- Üretim image içinde gereksiz dosyaları eleme alışkanlığı
6. Container Networking: Portlar ve Servis İletişimi
- Bridge network mantığını öğrenerek varsayılan davranışı anlama
- Port mapping ile dış erişimi kontrollü şekilde açma yaklaşımı
- Servisler arası iletişim için network oluşturma ve kullanma
- DNS çözümleme ile container isimleri üzerinden erişim kurgusu
- Network sorunlarını teşhis etmek için temel doğrulama adımları
7. Volumes ve Kalıcı Veri Yönetimi
- Volume tiplerini öğrenerek doğru saklama seçimini yapma
- Bind mount ile yerel geliştirme akışını kolaylaştırma
- Kalıcı veriyi container yaşam döngüsünden bağımsız tutma yaklaşımı
- Backup ve taşıma için volume yönetimi ve pratik yöntemler
- Dosya izinleri ve performans etkilerini doğru değerlendirme
8. Container Konfigürasyonu ve Ortam Değişkenleri
- ENV ve runtime değişkenleriyle konfigürasyonu yönetme
- Config dosyalarını güvenli şekilde mount ederek düzeni koruma
- Farklı ortamlar için parametreleştirme ile tekrar kullanılabilirlik
- Secrets yaklaşımına giriş ile hassas verileri koruma temel bilgisi
- Uygulama log seviyelerini ve ayarlarını dinamik yönetme
9. Container İzleme, Loglama ve Debug Süreçleri
- Container loglarını okuyarak hızlı teşhis alışkanlığı kazanma
- Log driver seçeneklerini tanıyarak doğru yönlendirmeyi seçme
- Exec ve shell erişimi ile canlı debug akışını uygulama
- Resource kullanımı izleme ile darboğazları tespit etme
- Hata senaryolarında etkili geri dönüş için sistematik yaklaşım
10. Kaynak Yönetimi ve Performans Pratikleri
- CPU ve bellek limitleriyle kaynak tüketimini kontrol etme
- Healthcheck ile servis sağlığını görünür hale getirme
- Restart policy ile dayanıklılığı artıran çalışma düzeni kurma
- Build ve runtime optimizasyonları ile hızlı teslimat sağlama
- Disk, layer ve cache yönetimi ile sürdürülebilir performans
11. Güvenlik Temelleri ve En İyi Pratikler
- En az ayrıcalık yaklaşımıyla güvenli container çalıştırma
- Root kullanıcıdan kaçınarak riskleri azaltma pratikleri
- Image kaynak kontrolü ve imzalama yaklaşımına giriş bilgisi
- Vulnerability taraması mantığını anlayarak riskleri yönetme
- Runtime güvenliği için temel kontroller ve kısıtlamalar
12. CI/CD ve Pipeline Entegrasyonu
- Docker build ve push adımlarını pipeline içine yerleştirme
- Tag ve versiyonlama politikasıyla izlenebilir teslimat düzeni
- Cache kullanımı ile build sürelerini düşürme yaklaşımı
- Test adımlarını container içinde çalıştırarak tutarlılık sağlama
- Registry erişim yönetimi ile güvenli dağıtım akışı kurma
13. Yerel Geliştirme Standardı ve Ekip Çalışma Pratikleri
- Ortam kurulum süresini azaltan standart Docker akışı belirleme
- Servis bağımlılıklarını container ile yöneterek tutarlı geliştirme
- Dokümantasyon ve örnek komutlarla ekip içi ortak dil oluşturma
- Sorun giderme rehberi ile tekrar eden problemleri azaltma
- Geliştirme ve test için ayrı profillerle çalışma düzeni kurma
14. Ek Modül: Docker Compose ile Çok Servisli Ortamlar
- Compose dosya yapısını öğrenerek servisleri düzenli tanımlama
- Servis bağımlılıklarını yöneterek başlatma sırasını kurgulama
- Ortam değişkenleri ve volume ile çok servisli kurulum standardı
- Network tanımları ile servis iletişimini güvenli biçimde kurma
- Profil mantığı ile farklı senaryolar için compose yapılandırması
15. Ek Modül: Image Optimizasyonu ve Güvenlik Pratikleri
- Base image seçimi ile boyut ve güvenliği dengeleme yaklaşımı
- Katmanları sadeleştirerek build süresini iyileştirme pratikleri
- Gereksiz paketleri azaltarak saldırı yüzeyini küçültme
- Vulnerability taraması sonuçlarını yorumlama ve önceliklendirme
- SBOM ve doğrulama yaklaşımlarıyla tedarik zinciri farkındalığı
16. Ek Modül: Container Loglama ve Debug Yaklaşımı
- Log formatı standardı ile izlenebilirliği artırma yaklaşımı
- Docker log driver seçim kriterleriyle doğru altyapıyı belirleme
- Canlı sistemde debug akışı için güvenli komut seti oluşturma
- Trace ve metriklerle ilişkilendirme yaparak kök neden analizi
- Operasyonel runbook ile ekip içinde tutarlı müdahale süreci
Docker Eğitimi ile İlgili
Sıkça Sorulan Sorular ve Cevapları
Docker ile sanal makine yaklaşımı arasındaki temel farklar nelerdir?
Docker, uygulamayı container içinde izole ederek daha hızlı başlatma ve daha düşük kaynak tüketimi sağlar. Sanal makineler ise tam işletim sistemi sanallaştırdığı için daha ağır çalışır; izolasyon modeli ve dağıtım pratikleri farklıdır.
Dockerfile yazarken katman ve cache mantığı nasıl doğru kullanılır?
Dockerfile komutları katmanlar oluşturur ve tekrar eden build’lerde cache devreye girer. Sık değişen adımları sona taşıyarak, bağımlılık kurulumunu erken katmanlarda tutarak build süreleri önemli ölçüde iyileştirilebilir.
Volume ve bind mount ne zaman tercih edilmelidir?
Kalıcı veri ve üretim senaryolarında genellikle volume tercih edilir. Yerel geliştirmede canlı kod değişiklikleri için bind mount daha pratik olur; performans ve izin etkileri senaryoya göre değerlendirilmelidir.
Docker networking ile servisler arası iletişim nasıl tasarlanır?
Aynı network içinde container’lar isimleri üzerinden birbirine erişebilir. Port mapping dış erişim için kullanılır; servis iletişimi için özel network tanımları ve DNS çözümleme mantığıyla daha kontrollü bir yapı kurulur.
Eğitim içeriğini ihtiyaçlarımıza göre özelleştirebilir misiniz?
Evet. Eğitim öncesinde ihtiyaç analizi yaparak içerik ve örnekleri ekibinize göre uyarlayabiliriz. Modüller eklenebilir, bazı başlıklar derinleştirilebilir veya sadeleştirilebilir.
Eğitim yeri, yöntemi ve sertifikasyon süreci nasıl ilerliyor?
Eğitim online (canlı) veya yerinde gerçekleştirilebilir; tarih ve saatleri ekibinizin uygunluğuna göre planlarız. Program sonunda katılım sertifikası verilir; talep edilirse ölçme-değerlendirme ve raporlama eklenebilir.



