1. Giriş
– Ön gereksinimler, temel bilgiler
– Bilgisayara kurulum
– Sanal makine üzerinden kurulum
– Docker-machine ile kurulum
– PWD
– Örnek uygulamanın kurulumu
– Uygulama çalıştırmak
– Çalışan konteynırların görüntülenmesi
– Çalışan konteynırların izlenmesi
– Konteynırları durdurmak/duraklatmak/başlatmak
– Konteynırlara komut satırı erişimi
– Bazı diğer sık kullanılan Docker komutları
– Docker versiyonları, CE ve EE sürümleri
2. Docker Çalışma Prensipleri
– Konteyner yapısı
– Altyapı
– Namespace’ler
– Cgroups
– Capabilities
– CoW dosya sistemleri
3. İmaj Yapısı
– Base image kavramı
– Dockerfile yapısı
– Dockerfile komutlarının tanıtımı
– Katman yapısı ve katmanların görüntülenmesi
– İmaj oluşturma
– Yaygın kullanılan temel imajlar
– Tek katmanlı konteynır oluşturmak
4. Docker Compose
– YAML’ın kısa özeti
– Compose Dosya Yapısı
– Compose ile Dockerfile’ların imaja dönüştürülmesi
– Compose dosyasının yayına alınması ve yayından kaldırmak
– Uygulamaları arkaplanda başlatmak
– Linkler
– Servis ölçekleme
5. Docker Network Yapısı – 1
– Linkler vs network kullanımı
– Docker’ın temel network mekanizmaları
– Docker ile network yönetim komutları
– overlay/bridge ağ yapıları ve farklılıkları
6. Docker’da Örnek Yazılım Dağıtımı
– 12 Faktör ve avantajları
– Stateful ve stateless kavramları
– Örnek 12 faktör uygulamasının Docker’da yayına
7. Depolama
– Docker Volume kavramı
– Volume sürücüleri
– SSH üzerinden Volume bağlanması
– Volume konfigürasyonları
– Volume ile kalıcı veri saklama
– Konteynır içerisine veri aktarımı
– Konteynır içinden veri aktarımı
– Docker commit
8. Servis keşfi ve bağlantılar
– Servis keşif mekanizması
– İsimlendirme ve haberleşme
9. Dışarıdan erişim ve test için yöntemler
– ngrok
– supergrok
– SSH tünelleme
10. Loglara erişim
– Konteynır mimarisine uygun log sistem yapısı
– Docker ile konteynır bazlı log erişimi
– Compose ile log erişimi
– Docker log sürücüleri
11. Kaynaklar ve performans
– CLI araçları ile izleme (vmstat/top/htop/vtop vs.)
– Apwache benchmark ve httping
– Docker stats
– Docker inspect
12. Portainer
– Tanım, tanıtım, kurulum
– Konteynır yönetimi
– Network yönetimi
– Performans izleme
– Konteynırlara terminal erişimi
– Diğer yaygın kullanılan özellikler
13. Swarm Mode
– Nedir?
– Neden/hangi durumlarda kullanılır?
– HA/Zero Downtime ve Swarm Mode ilişkisi
– SwarmKit araç seti
– Raft nedir?
– Raft consensus nasıl sağlanır/yönetilir
– Manager ve worker node kavramları
– Manager sayısının belirlenme yöntemi/tavsiyeler
– Failover algoritması
– Swarm mode ile yük dengeleme, overlay network ve IPVS
– Key-value store kavramı
– Orchestration ve KV store ilişkisi
– Data plane ve control plane
14. Swarmkit Cluster Yapısı
– Worker/manager benzerlik ve farklılıkları
– Swarm modunda Raft konseyi
– Yönetici seçimi ve yönetimdeki rolü
– “Desired state” kavramı ve Swarm modundaki işleyişi
– Swarm modu bileşenleri ve işlevleri
– Orchestrator
– Scheduler
– Allocator
– Dispatcher
– Swarm modunda task, servis, imaj, konteynır kavramları
15. Swarm mode yönetimi
– Docker swarm
– Swarm mode aktifleştirilmesi
– Advertisement ve IP/port seçim algoritması/kriterleri
– Bağlantı güvenliği ve token alınması
– İstenen node’ların swarma katılması
– Docker node
– Bağlı makinelerin görüntülenmesi
– Promotion ve demotion
– Güncelleme ve makine etiketleme
– Docker service
– Servis oluşturma
– Servis değişikliği/servis silmek
– Servis güncelleme
– Loglama
– Depolama
– Bölgeye/datacenter’a/makine özelliklerine göre kısıtlar
– Ölçekleme
– Global mod
– Docker machine ile kurulum hazırlığı
– Rolling update ve rollback stratejileri, uygulaması
– Healthcheck mekanizması ve kullanımı
16. Docker Network Yapısı – 2
– Overlay sürücüsü ile multi-host networkler
– Şifrelenmiş ağ oluşturma ve çalışma şekli
– Bağlanabilir ağ oluşturma
– Uygulamaların ağ izolasyonu
– Dışarı açık olmayan uygulamalar
– Alternatif network sürücüleri
17. Docker Stack
– Stack için compose yapısı
– Stack ile servis ve network yönetimi
– Stack’in yayına alınması
– Stack güncellemeleri
– Önceki bölümdeki uygulamaların Stack’e aktarılması
18. Registry altyapıları
– Docker Hub
– Docker registry
– Lokal registry kurulumu
– Docker engine’e registry tanıtımı
– Registry ve depolama ( lokal ve S3 örnekleri ile )
– Authentication
– Docker trusted registry
– Registry’in mirror olarak kullanılması
– Üretilen imajların istenen registry üzerinde depolanması
– Registry API
19. CI/CD/CDP
– CI/CD/CDP kavramları ve farkları
– Örnek deployment stratejilerinin anlatımı
– Phabricator veya Github ile commit filtreleme
– Jenkins ve Phabricator/Github ile hook iletişimi
– Jenkins pipeline mekanizması
– Paralel derleme ve testlerin yönetimi
– BlueOcean arayüzü
– Jenkinsfile hazırlanması ve Docker entegrasyonu
– Kodun gönderiminden yayına alınmasına kadar tüm sürecin otomatize edilmesi
– Deployment öncesi kullanıcı onayının beklenmesi
20. Proxy
– Proxy ihtiyaç sebepleri
– Docker flow proxy/Traefik/nginx proxy alternatifleri
– Traefik Proxy ve Swarm Mode entegrasyonu
– Traefik ile WRR yük dengeleme
– Birden fazla alan adı
– Servis etiketleme
– BlueGreen ve Canary deployment, Traefik’in bunlara faydası
21. Docker ile Ansible entegrasyonu
– Ansible Docker Modülü
– Ansible ile imaj üretme
– Ansible ile konteyner yönetimi
– Docker network ve diğer kaynakların ansible ile yönetme
22. Docker for AWS/Docker for Azure
– Kurulumu/kullanımı (AWS üzerinde CloudFormation / VPC / Security Groups / IGW vs. hakkında kısa bilgiler)
– Swarm-exec
– Cloudstor
– DNS kaydı, yük dengeleme
– Failover yapısı ve test edilmesi
– Log yönetimi/CloudWatch
23. Docker secret
– Hassas bilgilerin saklanması
– Kısıtlamalar
– Çalışma yapısı ve güvenliği
– Secret oluşturma
– Servise göre secret erişimi
– Ayar dosyalarının secret olarak ayarlanması
– İsimlendirme
– Güncelleme
24. Loglar – ELK
– Log sürücüleri ve GELF
– LogSpout
– ELK Stack kurulumu ve tüm logların aktarılması
25. Metrikler
– Telegraf
– InfluxDB
– Grafana ve eklentileri
– Servisler haline getirilerek tüm clusterın izlenmesi
– Alternatif Stack önerileri (Prometheus, Google cadvisor vb araçlar ile)
26. Ek konular
– Docker system df
– System prune özelliği ve kullanımı
– Servis güncellemeleri
– Karşılaşılabilecek sorunlar
– Yayına alma tavsiyeleri