Docker, uygulamaları tüm bağımlılıklarıyla birlikte container (konteyner) adı verilen izole paketler içinde çalıştırmaya yarayan açık kaynaklı bir platformdur. 2013’te yayınlanmasından bu yana yazılım geliştirme ve dağıtım süreçlerinin standardı hâline gelmiştir. “Benim bilgisayarımda çalışıyordu” sorununu ortadan kaldırır: Uygulamanız geliştirme ortamında nasıl çalışıyorsa, test ve canlı sunucuda da aynı şekilde çalışır.
Docker Nasıl Çalışır?
Docker, sanal makinelerin aksine her uygulama için ayrı bir işletim sistemi kurmaz. Tüm container’lar, üzerinde çalıştıkları sunucunun işletim sistemi çekirdeğini (kernel) paylaşır; ancak dosya sistemi, ağ ve işlem seviyesinde birbirinden tamamen izole çalışır. Bu sayede bir container saniyeler içinde ayağa kalkar ve çok az kaynak tüketir.
Arka planda bu işi yöneten servis Docker Daemon‘dır. Siz terminalden bir komut yazdığınızda, Docker istemcisi bu komutu daemon’a iletir; daemon da image indirme, container başlatma gibi işlemleri gerçekleştirir. Uzak bir sunucuda Docker yönetiyorsanız bu komutları genellikle güvenli bir uzak bağlantı üzerinden gönderirsiniz — bu bağlantının nasıl kurulduğunu SSH Nedir? yazımızda ayrıntılı anlattık.
Docker ile Sanal Makine (VM) Arasındaki Fark Nedir?

| Docker Container | Sanal Makine | |
|---|---|---|
| İşletim sistemi | Ana sistemin çekirdeğini paylaşır | Her VM’de ayrı tam işletim sistemi |
| Başlama süresi | Saniyeler | Dakikalar |
| Boyut | MB seviyesinde | GB seviyesinde |
| Kaynak tüketimi | Düşük | Yüksek |
| İzolasyon | İşlem seviyesinde | Donanım seviyesinde |
Kısaca: Aynı sunucuda sanal makineyle 5-10 uygulama çalıştırabiliyorken, Docker ile yüzlercesini çalıştırabilirsiniz.
Temel Docker Bileşenleri Nelerdir?
- Dockerfile: Image’ın nasıl oluşturulacağını satır satır tarif eden talimat dosyası (işletim sistemi, bağımlılıklar, portlar, çalıştırılacak komut).
- Docker Image: Uygulamanın ve tüm bağımlılıklarının paketlenmiş, salt okunur şablonu.
- Docker Container: Image’ın çalışan hâli. Aynı image’dan istediğiniz kadar container başlatabilirsiniz.
- Docker Hub: Hazır image’ların barındırıldığı resmî kayıt deposu (registry). Nginx, MySQL, Redis gibi binlerce resmî image buradan indirilir.
- Docker Compose: Birden fazla container’ı (örneğin web uygulaması + veritabanı + önbellek) tek bir YAML dosyasıyla tanımlayıp tek komutla ayağa kaldıran araç.
- Docker Daemon: Tüm bu işlemleri arka planda yürüten servis.
Docker Nerede Kullanılır?
- Geliştirme ortamlarının standartlaştırılması: Ekipteki herkes aynı ortamda çalışır.
- Mikroservis mimarileri: Her servis kendi container’ında bağımsız ölçeklenir.
- CI/CD süreçleri: Test ve dağıtım otomasyonunda tutarlı ortam sağlar.
- Veritabanı ve altyapı servisleri: MySQL, PostgreSQL, Redis gibi servisler tek komutla kurulur. Veritabanının sunucu tarafında nasıl konumlandığını merak ediyorsanız Veritabanı Sunucusu Nedir? yazımıza göz atabilirsiniz.
Docker’ın Avantajları Nelerdir?
- Taşınabilirlik: Container her yerde aynı çalışır — dizüstünde, sunucuda, bulutta.
- Hız: Saniyeler içinde başlatma, anında ölçekleme.
- Kaynak verimliliği: Sanal makineye göre çok daha az RAM ve disk kullanımı.
- İzolasyon: Bir container’daki sorun diğerlerini etkilemez.
- Sürüm kontrolü: Image’lar etiketlenir; sorunda önceki sürüme saniyeler içinde dönülür.
Temel Docker Komutları Nelerdir?

| Komut | Ne yapar |
|---|---|
docker pull | Docker Hub’dan image indirir |
docker run | Image’dan container oluşturup çalıştırır |
docker ps | Çalışan container’ları listeler (-a ile tümü) |
docker images | İndirilen image’ları listeler |
docker build | Dockerfile’dan image oluşturur |
docker exec | Çalışan container içinde komut çalıştırır |
docker stop / docker start | Container’ı durdurur / yeniden başlatır |
docker rm | Container’ı siler |
docker rmi | Image’ı siler |
docker logs | Container loglarını gösterir |
Örneklerle Docker Komutları
docker pull nginx # Nginx image'ını indir
docker run -d -p 80:80 nginx # Arka planda çalıştır, 80 portunu yayınla
docker ps # Çalışanları gör
docker exec -it <id> bash # Container içine terminalle gir
docker logs <id> # Logları incele
docker stop <id> # Durdur
docker rm <id> # Sil
docker build -t uygulamam:v1 . # Kendi image'ını oluşturDocker İle İlgili Sıkça Sorulan Sorular
Docker ücretsiz mi?
Docker Engine açık kaynaklıdır ve ücretsizdir. Docker Desktop, bireysel kullanıcılar ve küçük işletmeler için ücretsiz; büyük şirketler için lisanslıdır.
Docker ile Kubernetes arasındaki fark nedir?
Docker container’ları oluşturur ve çalıştırır; Kubernetes ise yüzlerce container’ı birden fazla sunucuda yöneten bir orkestrasyon aracıdır. Rakip değil, tamamlayıcıdırlar.
Docker pull komutu nedir?
Docker Hub gibi bir kayıt deposundan image’ı yerel makineye indirir.
Docker run komutu nedir?
Bir image’dan yeni bir container oluşturur ve başlatır. -d arka planda çalıştırır, -p port yönlendirir.
Docker exec komutu nedir?
Çalışan bir container’ın içinde komut yürütür; en yaygın kullanımı docker exec -it container_adi bash ile container içine girmektir.
Docker Compose ne işe yarar?
Çok container’lı uygulamaları (web + veritabanı + cache) tek docker-compose.yml dosyasıyla tanımlayıp docker compose up komutuyla topluca başlatır.

