Docker'a ilk adım: "benim bilgisayarımda çalışıyordu" devrinin sonu

Docker, uygulamanı tüm bağımlılıklarıyla birlikte bir “kutuya” (konteyner) koyar. O kutu her yerde aynı çalışır: senin PC’nde, sunucuda, arkadaşında.

Üç temel kavram

  • Image (imaj): uygulamanın kalıbı (ör. python:3.12, nginx).
  • Container (konteyner): imajdan çalışan canlı örnek.
  • Dockerfile: kendi imajını nasıl kuracağını anlatan tarif.

En sık kullanılan komutlar

docker run -d -p 8080:80 --name web nginx   # nginx'i arka planda başlat, 8080'den eriş
docker ps                                    # çalışan konteynerler
docker ps -a                                 # duranlar dahil hepsi
docker logs web                              # konteynerin çıktısı
docker exec -it web bash                     # konteynerin içine gir
docker stop web && docker rm web             # durdur ve sil
docker images                                # indirdiğin imajlar

Basit bir Python uygulamasını paketle

Dockerfile:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

Kur ve çalıştır:

docker build -t benim-uygulama .
docker run --rm -p 5000:5000 benim-uygulama

Dikkat edilecekler

  • -p dış:iç port eşlemesi. 8080:80 = dışarıdan 8080, konteyner içinde 80.
  • Hassas bilgileri (şifre, anahtar) imaja gömme; -e ile ortam değişkeni veya .env kullan.
  • .dockerignore ile gereksiz dosyaları (.git, node_modules, .venv) imaja koyma; imaj küçülür.
  • Birden çok servis (uygulama + veritabanı) için docker compose öğren; tek dosyada hepsini yönetirsin.

Kurulumda takılırsanız hata mesajıyla Soru-Cevap’a gelin.