Docker Nedir ve Neden Kullanılır?
Docker, uygulamaları container'lar içinde paketlemenizi sağlar. "Benim makinemde çalışıyor" sorununu ortadan kaldırır. Geliştirme, test ve production ortamları arasında tutarlılık sağlar.
İlgili rehberler: DNS nedir, ayarları değiştirme · Domain adı ve WHOIS sorgulama · Hosting türleri rehberi · Nginx yapılandırma · Plesk panel yönetimi
Dockerfile Yazımı
İyi bir Dockerfile, katmanlı (layered) yapıda olmalı ve cache'den maksimum faydalanmalıdır. Sık değişen katmanları sona koyun.
# Multi-stage build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package.json ./
EXPOSE 3000
USER node
CMD ["node", "dist/server.js"]
Docker Compose ile Multi-Container
Çoğu uygulama birden fazla servise ihtiyaç duyar: web server, veritabanı, cache, reverse proxy. Docker Compose bunları tek bir YAML dosyasında tanımlar.
version: '3.8'
services:
app:
build: .
ports: ["3000:3000"]
environment:
- NODE_ENV=production
- DB_HOST=db
depends_on: [db, redis]
db:
image: postgres:16-alpine
volumes: ["pgdata:/var/lib/postgresql/data"]
environment:
POSTGRES_DB: myapp
POSTGRES_PASSWORD_FILE: /run/secrets/db_pass
redis:
image: redis:7-alpine
volumes:
pgdata:
Production Best Practices
1) Root kullanıcısı ile çalışmayın — USER node ekleyin. 2) .dockerignore kullanın. 3) Health check ekleyin. 4) Log'ları stdout/stderr'e yönlendirin. 5) Secret'ları environment variable veya Docker secrets ile yönetin.
Modern Web Hosting ve Sunucu Altyapısı
Performanslı bir web hosting hizmeti üç temel altyapı kararına dayanır: NVMe SSD diskler (klasik SATA SSD'ye göre 4-6 kat IOPS), LiteSpeed Web Server veya Nginx + LSCache kombinasyonu (Apache'ye göre 9 kat istek kapasitesi) ve CloudLinux + Imunify360 izolasyonu. Hosting sağlayıcısının kontrol paneli (cPanel, Plesk, DirectAdmin), günlük yedek politikası, veri merkezi konumu ve destek ekibi yanıt süresi de büyük fark yaratır. Türkiye lokasyonu yerli ziyaretçilere düşük gecikme verirken; Hetzner Frankfurt veya OVH Roubaix gibi Avrupa lokasyonları global trafik için daha uygundur. Site büyüdükçe paylaşımlı hosting'ten VPS, ardından dedicated server'a geçiş; CPU/RAM/disk kaynaklarının web sitemizin ihtiyaçlarına göre ölçeklenmesini sağlar.