İçeriğe geç
Geliştirme Araçları

Docker nedir, nasıl kurulur? İlk container rehberi

Uygulamaları ihtiyaç duydukları her şeyle birlikte "konteyner" denen paketlere koyan araç. "Benim bilgisayarımda çalışıyordu!" sorununu çözer; ortam farklarını azaltmaya yardımcı olur. İşlemci mimarisi, çekirdek, ağ ve yapılandırma farkları yine önemlidir.

Docker Desktop: ücretsiz kullanım koşullu Windows, Mac, Linux Uygulamalı atölye ↓ docker.com ↗
Webino App Ekibi Son güncelleme:
Bu sayfada · 9 başlık

Docker Hakkında Bilmen Gereken 5 Temel Soru

Ne İçin Kullanılır?

Uygulamaları ve çalışması için gereken tüm bağımlılıkları “konteyner” adı verilen izole paketler haline getirerek her ortamda aynı şekilde çalıştırmak için kullanılır.

Neler Yapılır?

“Benim bilgisayarımda çalışıyordu, sunucuda çalışmıyor” sorununu yok etme, mikroservisler kurma, veritabanlarını tek komutla ayağa kaldırma yapılır.

Nerede Kullanılır?

Modern bulut bilişimde (AWS, Google Cloud, Azure), DevOps süreçlerinde ve mikroservis mimarilerinde kullanılır.

Nasıl & Nerede Çalıştırılır?

docker.com adresinden Docker Desktop kurulur; terminal üzerinden `docker run` ve `docker-compose` komutlarıyla çalıştırılır.

Neden Önemlidir?

Yazılımın çalışacağı ortamı standardize eder; geliştirme ve üretim ortamları arasındaki tüm uyumsuzlukları sıfırlar.

Docker ne için kullanılır?

Uygulamayı gerekli her şeyiyle birlikte paketlemek

Veritabanı gibi programları kurmadan tek komutla çalıştırmak

Uygulamaları sunuculara ve buluta taşımak

Ekipte herkesin aynı ortamda çalışmasını sağlamak

Docker kullanırken duyacağın kavramlar

Image (kalıp)
Uygulamanın ve ihtiyaç duyduğu her şeyin paketlenmiş, değişmeyen hâli. Bir yemek tarifi gibi düşünebilirsin.
Container (konteyner)
Bir kalıptan çalıştırılan uygulama. Tariften pişirilmiş yemek gibi.
Dockerfile
Kalıbın nasıl hazırlanacağını adım adım anlatan dosya.
Docker Hub
Hazır kalıpların paylaşıldığı internet sitesi.
Port
Konteynerdeki uygulamaya bilgisayarından ulaşmak için açılan kapı (ör. 8080).

Nasıl kurulur?

Adımları görsellerle takip et. Ekran görüntüsüne dokunarak büyütebilirsin; sürümüne veya işletim sistemine göre düğmelerin yeri değişebilir.

  1. 1

    docker.com adresinden Docker Desktop'ı indir.

    Gerçek ekran görüntüsü Resmi site · 3 Kasım 2026 ekran görüntüsü
    İşletim sistemine uygun Docker Desktop paketini seç.

    İşletim sistemine uygun Docker Desktop paketini seç.

  2. 2

    Windows'ta kurulum WSL 2'yi etkinleştirmeni isteyebilir. Ekrandaki adımları takip et ve bilgisayarı yeniden başlat.

    Şekil 2 · WSL 2 isterse kurulumu tamamla ve bilgisayarı yeniden başlat. (temsili çizim)
  3. 3

    Docker Desktop'ı aç ve çalıştığından emin ol. Sonra terminalde test et:

    Terminal
    docker run hello-world
    Şekil 3 · Bu mesajı görüyorsan Docker çalışıyor. (temsili çizim)

Nasıl kullanılır?

Adım adım ilk kullanım. Kod kutularındaki "Kopyala" butonuyla komutları kopyalayabilirsin.

1

Hazır bir program çalıştır

Örneğin bir web sunucusunu (nginx) kurmadan çalıştır, sonra tarayıcıda localhost:8080 adresini aç:

Terminal
docker run -d -p 8080:80 nginx

Hazır imajı seçerken resmî kaynak ve sürüm etiketini incele.

Container’a anlaşılır bir ad ver; aynı adı tekrar kullanınca çakışacağını bil.

Açtığın portu 127.0.0.1 ile yalnızca kendi cihazına bağlamak ilk denemeyi sınırlar.

Uygulama: Deneme klasöründe bir index.html oluştur.

Kontrol: Image ve container farkını biliyorum.

Docker · Hazır bir program çalıştır — uygulamalı anlatım: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.
Videoyla adım adım izle · 3:20

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Hazır bir program çalıştır

Hazır imajı seçerken resmî kaynak ve sürüm etiketini incele.

İşin mantığı

Container’a anlaşılır bir ad ver; aynı adı tekrar kullanınca çakışacağını bil.

Uygula ve gözlemle

Açtığın portu 127.0.0.1 ile yalnızca kendi cihazına bağlamak ilk denemeyi sınırlar.

Komut / kod · 1

Önce komutun ne yapacağını oku; işletim sistemi farklarını yazılı rehberde kontrol et.

Kod

docker run -d -p 8080:80 nginx

Somut görev

Deneme klasöründe bir index.html oluştur.

Kontrol et

Image ve container farkını biliyorum.

Takılırsan

Port kullanımda — Farklı boş bir host portu seç; container içindeki uygulama portunu rastgele değiştirme.

Kendine sor

Image ile container aynı mı? Yanıt: Hayır; image paket, container ondan başlatılan çalışan örnektir.

2

Çalışanları listele

Şu an çalışan konteynerleri gör:

Terminal
docker ps

docker ps çalışan, docker ps -a durmuş container’ları da gösterir.

Bir uygulama kapanırsa yalnızca yeniden başlatmak yerine docker logs ile nedenini incele.

Container ID ile image ID’nin farklı kaynakları tanımladığını ayır.

Uygulama: Dockerfile ile uygun web sunucusu imajından statik dosyayı kopyala.

Kontrol: Host portu ile container portunu ayırıyorum.

Docker · Çalışanları listele — uygulamalı anlatım: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.
Videoyla adım adım izle · 3:20

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Çalışanları listele

docker ps çalışan, docker ps -a durmuş container’ları da gösterir.

İşin mantığı

Bir uygulama kapanırsa yalnızca yeniden başlatmak yerine docker logs ile nedenini incele.

Uygula ve gözlemle

Container ID ile image ID’nin farklı kaynakları tanımladığını ayır.

Komut / kod · 1

Önce komutun ne yapacağını oku; işletim sistemi farklarını yazılı rehberde kontrol et.

Kod

docker ps

Somut görev

Dockerfile ile uygun web sunucusu imajından statik dosyayı kopyala.

Kontrol et

Host portu ile container portunu ayırıyorum.

Takılırsan

Cannot connect to Docker daemon — Docker hizmetinin çalıştığını ve uygun ortam/bağlam seçildiğini kontrol et.

Kendine sor

Port eşleme dosya kaydetmeyi sağlar mı? Yanıt: Hayır; ağ erişimi ile veri kalıcılığı farklı ayarlardır.

3

Kendi uygulamanı paketle

Proje klasörüne Dockerfile adında bir dosya ekle. Bu örnek bir Python uygulamasını paketler:

Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY . .
CMD ["python", "app.py"]

Dockerfile uygulamanın paketlenme tarifidir; her satırın neden bulunduğunu açıkla.

Statik sayfa örneğinde yalnızca gerekli dosyayı uygun konuma kopyala.

Parola, token veya gereksiz büyük klasörleri imaj bağlamına dahil etme; .dockerignore görevini öğren.

Uygulama: İmaja webino-demo gibi bir etiket vererek build et.

Kontrol: Log üzerinden başlangıç hatasını okuyabiliyorum.

Docker · Kendi uygulamanı paketle — uygulamalı anlatım: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.
Videoyla adım adım izle · 3:20

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Kendi uygulamanı paketle

Dockerfile uygulamanın paketlenme tarifidir; her satırın neden bulunduğunu açıkla.

İşin mantığı

Statik sayfa örneğinde yalnızca gerekli dosyayı uygun konuma kopyala.

Uygula ve gözlemle

Parola, token veya gereksiz büyük klasörleri imaj bağlamına dahil etme; .dockerignore görevini öğren.

Komut / kod · 1

Önce komutun ne yapacağını oku; işletim sistemi farklarını yazılı rehberde kontrol et.

Kod

FROM python:3.12-slim
WORKDIR /app
COPY . .
CMD ["python", "app.py"]

Somut görev

İmaja webino-demo gibi bir etiket vererek build et.

Kontrol et

Log üzerinden başlangıç hatasını okuyabiliyorum.

Takılırsan

Dosyayı değiştirdim ama eski sayfa — Dosya imaja COPY ile alınmışsa yeniden build gerekir; bind mount akışı farklıdır.

Kendine sor

Log niye okunur? Yanıt: Uygulamanın başlamama veya kapanma nedenini görmek için.

4

Paketi oluştur ve çalıştır

Önce paketi (image) oluştur, sonra çalıştır:

Terminal
docker build -t benim-uygulamam .
docker run benim-uygulamam

Önce imajı build et, sonra ondan container başlat.

Değişen dosyanın imaja mı kopyalandığını yoksa bind mount ile mi okunduğunu ayır.

Denedikten sonra yalnızca kendi oluşturduğun adlı container’ı durdur; toplu silme komutları kullanma.

Uygulama: Yalnızca 127.0.0.1 üzerinde boş bir port eşleyerek başlat.

Kontrol: Veri kalıcılığını container yaşam süresiyle karıştırmıyorum.

Docker · Paketi oluştur ve çalıştır — uygulamalı anlatım: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.
Videoyla adım adım izle · 3:20

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Paketi oluştur ve çalıştır

Önce imajı build et, sonra ondan container başlat.

İşin mantığı

Değişen dosyanın imaja mı kopyalandığını yoksa bind mount ile mi okunduğunu ayır.

Uygula ve gözlemle

Denedikten sonra yalnızca kendi oluşturduğun adlı container’ı durdur; toplu silme komutları kullanma.

Komut / kod · 1

Önce komutun ne yapacağını oku; işletim sistemi farklarını yazılı rehberde kontrol et.

Kod

docker build -t benim-uygulamam .
docker run benim-uygulamam

Somut görev

Yalnızca 127.0.0.1 üzerinde boş bir port eşleyerek başlat.

Kontrol et

Veri kalıcılığını container yaşam süresiyle karıştırmıyorum.

Takılırsan

Dosyayı değiştirdim ama eski sayfa — Dosya imaja COPY ile alınmışsa yeniden build gerekir; bind mount akışı farklıdır.

Kendine sor

Log niye okunur? Yanıt: Uygulamanın başlamama veya kapanma nedenini görmek için.

Sık karşılaşılan sorunlar ve çözümleri

Bir yerde takılırsan önce buraya bak.

"Cannot connect to the Docker daemon" hatası

Çözüm: Docker Desktop açık değil. Uygulamayı başlat ve çalışmasını bekle.

"port is already allocated" hatası

Çözüm: O port başka bir program tarafından kullanılıyor. Farklı bir port dene: -p 8081:80.

Docker diskimi doldurdu

Çözüm: Kullanılmayan kalıp ve konteynerleri temizlemek için: docker system prune

Sık sorulan sorular

Docker bir sanal makine mi? +

Hayır. Sanal makine bütün bir işletim sistemini çalıştırır; Docker konteynerleri çok daha hafiftir ve saniyeler içinde açılır.

Yeni başlayan biri Docker öğrenmeli mi? +

İlk aylarda gerekmez. Önce bir dil ve Git öğren; sunucu ve takım işlerine geçince Docker çok işine yarar.

İpuçları

Docker uygulamalı eğitim atölyesi

Docker bir uygulamayı bağımlılıklarıyla paketleme ve yalıtılmış süreçler hâlinde çalıştırma yaklaşımı sunar. Image hazırlanmış tarif/katmanlar, container ise bu imajdan başlatılan çalışan örnektir. Bir container’ı silmek ile imajı silmek aynı işlem değildir; veri kalıcılığı da ayrıca tasarlanır.

Port eşleme, uygulamanın container içindeki portunu bilgisayarında bir porta bağlar. Volume veya bind mount ise dosya erişimi ve kalıcılıkla ilgilidir. Bu iki ayarı karıştırmak çok yaygındır: doğru port açılmış olsa bile dosyan yanlış dizine bağlandıysa beklediğin sayfa gelmez.

Bir imajı çalıştırmak üçüncü taraf kodunu çalıştırmaktır. Kaynağını, gerekli izinleri ve sürüm etiketini incele. İlk denemede yerel bir statik sayfa ve yalnızca kendi bilgisayarına bağlanan port kullan; gereksiz ayrıcalık veya bilgisayarındaki bütün klasöre erişim verme.

Kurulum öncesi ve doğrulama

  1. İşletim sistemine uygun Docker Desktop veya Engine kurulumunu resmî belgelerden seç.
  2. docker version ile istemci ve daemon bağlantısını denetle.
  3. Deneme için sır içermeyen ayrı bir klasör ve boşta bir yerel port kullan.
Docker · proje atölyesi: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.
Videoyla adım adım izle · 5:00

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Kendi HTML sayfanı yerel container üzerinden aç

Docker bir uygulamayı bağımlılıklarıyla paketleme ve yalıtılmış süreçler hâlinde çalıştırma yaklaşımı sunar. Image hazırlanmış tarif/katmanlar, container ise bu imajdan başlatılan çalışan örnektir. Bir container’ı silmek ile imajı silmek aynı işlem değildir; veri kalıcılığı da ayrıca tasarlanır.

Hazırlık

İşletim sistemine uygun Docker Desktop veya Engine kurulumunu resmî belgelerden seç. docker version ile istemci ve daemon bağlantısını denetle.

Proje adımı 1

Deneme klasöründe bir index.html oluştur.

Proje adımı 2

Dockerfile ile uygun web sunucusu imajından statik dosyayı kopyala.

Proje adımı 3

İmaja webino-demo gibi bir etiket vererek build et.

Proje adımı 4

Yalnızca 127.0.0.1 üzerinde boş bir port eşleyerek başlat.

Proje adımı 5

Tarayıcıdan o portu aç; beklenen başlığı ve docker logs çıktısını kontrol et.

Proje adımı 6

Yalnızca deneme container’ını durdur; dosya değişince neden yeniden build gerektiğini açıkla.

Başarı ölçütü 1

Image ve container farkını biliyorum.

Başarı ölçütü 2

Host portu ile container portunu ayırıyorum.

Başarı ölçütü 3

Log üzerinden başlangıç hatasını okuyabiliyorum.

Başarı ölçütü 4

Veri kalıcılığını container yaşam süresiyle karıştırmıyorum.

Bitirme çalışması: Kendi HTML sayfanı yerel container üzerinden aç

  1. Deneme klasöründe bir index.html oluştur.
  2. Dockerfile ile uygun web sunucusu imajından statik dosyayı kopyala.
  3. İmaja webino-demo gibi bir etiket vererek build et.
  4. Yalnızca 127.0.0.1 üzerinde boş bir port eşleyerek başlat.
  5. Tarayıcıdan o portu aç; beklenen başlığı ve docker logs çıktısını kontrol et.
  6. Yalnızca deneme container’ını durdur; dosya değişince neden yeniden build gerektiğini açıkla.

Başarı ölçütlerin

Sorun giderme masası

Port kullanımda

Farklı boş bir host portu seç; container içindeki uygulama portunu rastgele değiştirme.

Cannot connect to Docker daemon

Docker hizmetinin çalıştığını ve uygun ortam/bağlam seçildiğini kontrol et.

Dosyayı değiştirdim ama eski sayfa

Dosya imaja COPY ile alınmışsa yeniden build gerekir; bind mount akışı farklıdır.

Kendini kontrol et

Image ile container aynı mı?

Hayır; image paket, container ondan başlatılan çalışan örnektir.

Port eşleme dosya kaydetmeyi sağlar mı?

Hayır; ağ erişimi ile veri kalıcılığı farklı ayarlardır.

Log niye okunur?

Uygulamanın başlamama veya kapanma nedenini görmek için.

Bir sonraki modüller

  1. Volumes ve veri kalıcılığı
  2. Compose ile çoklu hizmet
  3. İmaj güvenliği ve küçük build bağlamı

Resmî öğretici ve belgeler

Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.