IHS Strategic
Tüm Blog Yazıları
HowTo09 Eylül 2026•2 dk okuma

Docker ve Container Mimarisi ile Web Uygulaması Dağıtımı Rehberi

Modern web uygulamalarını Docker ile dağıtma adımları. Dijital ajans projeleri ve ekipler için pratik container mimarisi rehberi.

S

Sistem Yöneticisi

Kıdemli Yazılım Mimarı

Modern Web ve Container Mimarisi

Klasik sunucu kurulumları ortam uyuşmazlığı yaratır. Docker izole ortam sağlar. Kod her yerde aynı çalışır. Dijital ajans ekipleri için dağıtım süresini kısaltır, sunucu maliyetini düşürür. Güncel trendler hafif ve çok aşamalı (multi-stage) container kullanımını öne çıkarır.

Adım 1: .dockerignore Dosyası Oluşturma

Gereksiz dosyalar imaj boyutunu şişirir. Proje kök dizininde .dockerignore aç:

node_modules
.git
.env
*.log
dist

Adım 2: Çok Aşamalı (Multi-stage) Dockerfile Yazımı

Derleme araçlarını son imaja dahil etme. Minimal taban imaj (Alpine) kullan:

# Build aşaması
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# Production aşaması
FROM node:20-alpine
WORKDIR /app
ENV NODE_ENV=production
COPY package*.json ./
RUN npm ci --only=production
COPY --from=builder /app/dist ./dist
USER node
EXPOSE 3000
CMD ["node", "dist/index.js"]
Güvenlik Uyarısı: Container içinde root kullanma. USER node veya özel kullanıcı tanımla. İzin sınırla.

Adım 3: Docker Compose ile Servis Yönetimi

Veritabanı ve web servisini birlikte ayağa kaldırmak için docker-compose.yml kullan:

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/appdb
    depends_on:
      - db
    restart: always

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: appdb
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: always

voldumes:
  pgdata:

Adım 4: Dağıtım ve Çalıştırma

Sunucuda projeyi başlatma adımları:

  1. Kodu sunucuya çek: git pull origin main
  2. Containerları arka planda derle ve çalıştır: docker compose up -d --build
  3. Logları kontrol et: docker compose logs -f web
  4. Eski imajları temizle: docker image prune -f

Pratik İpuçları ve Trendler

  • İmaj Boyutu: Minimal base imajlar (Alpine, Distroless) seç. Saldırı yüzeyi küçülür.
  • Reverse Proxy: Container önüne Nginx veya Traefik koy. SSL/TLS yönetimini proxy katmanında çöz.
  • CI/CD Entegrasyonu: GitHub Actions veya GitLab CI ile otomatik imaj build ve push pipeline kur.