Docker, bir uygulamayı kod, kütüphane ve bağımlılıklarıyla birlikte container adı verilen izole bir birime paketleyen açık kaynaklı bir containerization aracıdır. Sanal makineden farkı, işletim sistemi çekirdeğini konak makineyle paylaşarak çok daha hafif ve hızlı başlamasıdır. QA mühendisi için en yaygın kullanım alanı, Selenium Grid veya bir test veritabanını container içinde çalıştırıp "bende çalışıyor ama CI'da çalışmıyor" sorununu ortadan kaldırmaktır.
Docker nedir, test otomasyonunda nasıl kullanılır? Test ortamları, Selenium Grid, container, image, volume, network kavramları ve CI iş akışları.
Docker'ı sıfırdan mülakat seviyesine taşı. Test ortamlarını containerize et, Selenium Grid ve Playwright'ı Docker'da çalıştır ve "bende çalışıyor" sorununu "her yerde çalışıyor" çözümüne dönüştür.
Bu sayfada neler öğreneceksin
🎯 Docker Nedir? — Docker, yazılım için bir kargo konteyneri gibidir: fiziksel bir konteyner mobilya, elektronik veya yiyecek taşıyabilir ve her gemi, kamyon, vinç onu nasıl yükleyeceğini bilir — Docker container'ları ise kodunu VE ihtiyaç duyduğu her bağımlılığı taşır, böylece
⚙️ Docker Kurulumu — Windows/Mac'te Docker Desktop, otomatik vitesli bir kiralık araba gibidir: motor, CLI, Compose ve görsel arayüz bir arada gelir, hemen sürmeye başlarsın. Linux'ta Docker Engine'i doğrudan kurmak ise manuel vites versiyonudur — daha hafif, daha hızlı, fazladan
📥 Image'lar — Docker komutları katı bir "docker [nesne] [eylem]" kalıbını takip eder — kütüphane sistemi gibi: kitap ara (image), ödünç al (pull), oku (run), bitince iade et (stop/rm). Peki neden her komuta ayrı bir isim verip flag'leri ezberletmiyorlar? Çünkü tut
🚀 Container: docker run — docker run, mimari planın binaya dönüştüğü andır: image donmuş bir projedir; 'docker run' betonu döker, elektriği bağlar ve anahtarı teslim eder — kendi dosya sistemi, network portu ve adı olan canlı bir container. Peki tek bir komutun neden 'başlat' demek yer
🔄 Yaşam Döngüsü & Debug — Bir container'ın hayatı otel misafirinin konaklamasına benzer: docker ps resepsiyondaki 'şu an içeride kim var' listesidir, stop/start odadan çıkıp geri dönmektir, rm kesin çıkış (check-out) yapmaktır — logs ve exec ise odanın güvenlik kamerası ile misafir hâl
💾 Volume'ler — Container'ın dosya sistemi, kiralık toplantı odasındaki beyaz tahtadır: rezervasyonun bittiği anda (docker rm) temizlik ekibi onu siler. Volume ise odadan çıkarken yanına aldığın klasördür — her toplantıdan sağ çıkar. Ama dur — container'lar madem 'kullan-at'
🌐 Network'ler — Docker network bir ofis telefon rehberidir: aynı network'teki container'lar birbirini masa koordinatı (her restart'ta değişen IP adresi) ezberleyerek değil, İSİMLE arar (dahili hat 'db'). Peki Docker neden container IP'lerini hardcode etmene izin vermek yerine
📝 Dockerfile — Dockerfile, kendi image'ını inşa etmek için bir tariftir — her satır bir adımdır ve bir katman olarak pişer. Docker Compose ise aynı anda birden fazla müzisyeni başlatan şef gibidir: 5 ayrı "docker run" komutunu elle yazmak yerine, tek bir "dock
Sık Sorulan Sorular
Docker nedir?
Docker, bir uygulamayı kod, kütüphane ve bağımlılıklarıyla birlikte container adı verilen izole bir birime paketleyen açık kaynaklı bir containerization aracıdır. Sanal makineden farkı, işletim sistemi çekirdeğini konak makineyle paylaşarak çok daha hafif ve hızlı başlamasıdır.
Docker ile sanal makine arasındaki fark nedir?
Bir sanal makine kendi işletim sistemini tamamen taşır ve dakikalar içinde açılır; bir Docker container'ı konak işletim sisteminin çekirdeğini paylaşır ve saniyeler içinde başlar. Bu yüzden aynı sunucuda çok daha fazla container çalıştırabilirsin.
Docker öğrenmek ne kadar sürer?
Temel `docker run`/`docker build` komutlarını birkaç günde öğrenebilirsin. Docker Compose, network yapılandırması ve Selenium Grid entegrasyonu dahil mülakat seviyesine gelmek genelde 3-4 hafta düzenli pratik gerektirir.
Docker ücretsiz mi?
Docker Engine ve Docker CLI ücretsiz ve açık kaynaklıdır. Docker Desktop, büyük şirketlerde ticari kullanım için ücretli olabilir; küçük ekipler ve kişisel kullanım ücretsizdir.
Docker Compose ne işe yarar?
Docker Compose, birden fazla container'ı (örneğin uygulama + veritabanı + Selenium Grid) tek bir YAML dosyasıyla tanımlayıp tek komutla ayağa kaldırmanı sağlar — test ortamı kurulumunu tekrarlanabilir hale getirir.
En sık karşılaşılan Docker hatası nedir?
"port is already allocated" — konak makinede o port zaten başka bir container veya process tarafından kullanılıyordur. Çözüm, farklı bir port eşlemesi (`-p 8081:8080` gibi) kullanmak veya çakışan container'ı durdurmaktır.
Docker mülakatında en çok hangi soru sorulur?
Image ile container arasındaki fark (image bir şablon, container onun çalışan bir örneği) ve bir Dockerfile'daki katmanların (layer) nasıl cache'lendiği. Ardından bir Selenium Grid'i container'larla nasıl kuracağın ve volume ile bind mount arasındaki farkı açıklaman sık sorulan takip sorularıdır.